• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 checkbox 이벤트 관련된 질문입니다.

checkbox 이벤트 관련된 질문입니다.

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 글쓴이
  • #6973

    Daehun Song
    참가자

     

    안녕하세요. 
    선생님 강의 듣고 실제로 회원가입폼을 만들어 보고 있는 도중 해결이 안되서 질문드립니다. 
    회원가입시, 모든 약관에 동의합니다의 체크박스를 클릭하면 하위의 체크박스들이 체크가 되도록
    하고 싶습니다만, 선생님 강의 중 모달 이벤트를 인용하여 해봤습니다만, 
    잘 되지 않아, 혹시 제가 어떤 부분을 놓쳤는지 죄송하지만 조언을 구하고 싶습니다. 
    
    현재는 모든 약관에 동의합니다에 체크를 하면 아래와 같은 에러가 나옵니다. 
    index.js:1 Warning: Invalid attribute name: 0
    

    -------------------------------------------------------------------------------------

    import React, { useEffect, useState, useContext } from 'react';
    import { Link, Route, Switch, useHistory } from 'react-router-dom';
    import { Form, Button, InputGroup, Label } from 'react-bootstrap';
    import { connect } from 'react-redux';

    function Contract(props) {
          let [all_check, set_all_check] = useState(false);
          let [contract_check, set_contract_check] = useState(false);
          let [individual_check, set_individual_check] = useState(false);
          let history = useHistory();

          useEffect(() => {
                set_contract_check(all_check);
                set_individual_check(all_check);
          },[all_check])

          return (<>
                <main className="" role="main">
                      <div className="m-5"><h2>약관동의</h2></div>
                      <div className="ml-5 mr-5">
                            <div className="text-center">
                                  <Form.Label className="font-weight-bold">{props.env.sitename}의 회원으로 가입을 원하는 경우,<br />아래 약관 및 개인정보 처리방침에 대한 안내를 반드시 읽고, 동의해주세요.</Form.Label>
                            </div>
                            <div className="text-right">
                                  <Form.Check type='checkbox' label="모두 동의합니다." onClick={() => { set_all_check(!all_check) }} />
                            </div>
                      </div>
                      <div className="m-5">
                            <Form className="text-left justify-content-center">
                                  <Form.Group controlId="exampleForm.ControlTextarea1" className="disabled">
                                        <Form.Label className="font-weight-bold">회원가입약관</Form.Label>
                                        <Form.Control as="textarea" rows={5} readOnly>
                                        </Form.Control>
                                  </Form.Group>
                                  <div className="text-right">
                                        <Form.Check type='checkbox' label="개인정보 수집 및 이용에 동의합니다."
                                              { ...contract_check ? 'checked': null }
                                        />
                                  </div>
                                  <div className="mt-5">
                                        <Form.Group controlId="exampleForm.ControlTextarea1">
                                              <Form.Label className="font-weight-bold">개인정보 수집 및 이용에 관한 동의 사항 (필수사항)</Form.Label>
                                              <Form.Control as="textarea" rows={5} readOnly>
                                              </Form.Control>
                                        </Form.Group>
                                  </div>
                                  <div className="text-right mb-5">
                                        <Form.Check type='checkbox' label="개인정보 수집 및 이용에 동의합니다."
                                              { ...individual_check === true ? 'checked': null }
                                        />
                                  </div>
                                  <div className="text-center"><Button onClick={() => {
                                        history.push('/sign')
                                  }}>회원가입</Button></div>
                            </Form>
                      </div>
                </main>
          </>
          )

    }

    function StateToProps(state) {
          return {
                env: state[0]
          }
    }

    export default connect(StateToProps)(Contract)
    //export default Contract;

    #6974

    codingapple
    키 마스터

    <Form.Check type="checkbox" label="개인정보 수집 및 이용에 동의합니다."
                                              { …contract_check ? 'checked': null }
     />

    이 부분의 중괄호가 이상해보입니다

    태그안에 html attribute 형태로 넣으려는 것입니까 그렇다면 어쩌구={저쩌구} 아니면 어쩌구="어쩌구" 이렇게 넣으시면 되고

    태그안에 내용을 채워넣고 싶으면 <태그>어쩌구</태그>이렇게 넣으심 됩니다   

     

    #6975

    Daehun Song
    참가자

    checkbox 에 checked를 html에 표시 해준다는 단순한 사고를 했는데(예전에php나 spring밖에 안해봐서요)

    리액트는 attribute로 할 수 있는 걸 알게되었네요.(강의에 있었다면 죄송합니다. 두번이나 돌려보는데 깜빡깜빡하네요.ㅎㅎ)

    checked = {contract_check ? 'checked' : null }

    로 하니까 해결되었습니다.  

    감사합니다. ^^

     

3 글 보임 - 1 에서 3 까지 (총 3 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠