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

home2 게시판 React 게시판 리액트 props 값 수정하기?

리액트 props 값 수정하기?

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

    방상혁
    참가자
    import logo from './logo.svg';
    import './App.css';
    import { useState } from 'react';
    function App() {
      let [num, setNum] = useState([]);
      let [numplus, setNumplus] = useState(0)
      let [title, setTitle] = useState([])
      let [intitle, setIntitle] = useState("")
      let [writer, setWriter] = useState([])
      let [inwriter, setInwriter] = useState("")
      let [data, setData] = useState([])
      let [indata, setIndata] = useState("")
      let [modalbt, setModalbt] = useState(false)
      
      return (
        <div className="App" >
          <h2 style={{color:"green"}}>A/S 게시판</h2>
          <h3>고객만족에서 고객감동으로! 다 쏘에게 맡겨주세요</h3>
          <table className="a">
            <tr>
              <th >번호</th>
              <th >제목</th>
              <th >작성자</th>
              <th >작성일</th>
              <th >진행현황</th>
            </tr>
            
            {
            num.map(function(a,i){
              return(
                  <tr>
                    <td >{num[i]}</td>
                    <td >{title[i]}</td>
                    <td >{writer[i]}</td>
                    <td >{data[i]}</td>
                    <td ><button>삭제</button></td>
                  </tr>
              )
             
            })
            }
            
          </table>
      
          <button className='bt' onClick={()=>{
            setModalbt(!modalbt)
          }}>글쓰기</button>
          {
          modalbt === true ? <Modal num={num} numplus={numplus} title={title} intitle={intitle} writer={writer} inwriter={inwriter} data={data} indata={indata}></Modal> : null
          }  
        </div>
        )
      }
    function Modal(props){
      return(
        <div>
          <h2>글쓰기</h2>
          <p>제목</p>
          <input onChange={(e)=>{props.setIntitle(e.target.value)}}></input>
          <p>작성자</p>
          <input onChange={(e)=>{props.setInwriter(e.target.value)}}></input>
          <p>날짜</p>
          <input onChange={(e)=>{props.setIndata(e.target.value)}}></input>
          <br/>
          <button onClick={()=>{
            props.setNumplus(props.numplus+1)
            props.num.push(props.numplus)
            let copy = [...props.title]
            copy.push(props.intitle)
            props.setTitle(copy)
            let copy1 = [...props.writer]
            copy1.push(props.inwriter)
            props.setWriter(copy1)
            let copy2 = [...props.data]
            copy2.push(props.indata)
            props.setData(copy2)
          }}>저장</button>
        </div>
      )
    }
    export default App;
    
    
    
    에서 modal 컴포넌트에서 값을 입력해서 저장 버튼을 누르면 table에 값이 나오게 하려고 하는데 
    modal 컴포넌트에서 button 태그 안의 props 문법이 잘못된거 같은데 어떤게 잘못 된지를 모르게서요 ㅠㅠ
    modal 안에 button에서 console 찍으면 나오긴 하는데 modal 값이 전송이 안되요 ㅠ
    #40949

    codingapple
    키 마스터
    props.num.push() 처럼 props 값을 직접 수정하면 안됩니다
    #41212

    방상혁
    참가자
    아 감사합니다!!
    #41241

    방상혁
    참가자
    props 값을 직접 수정할 수 없다고 하셨어서 modal 안의 코드를 app 함수 안에 넣어서 
    실행을 하면 됬는데  그러면 자식 컴포넌트에서 props 값을 변경할 수 없다면 
    이럴 때에 redux를 사용해야 된는 것인가요?
    #41262

    codingapple
    키 마스터
    부모에서 state 수정함수를 자식으로 보내서 자식은 그거 쓰면 됩니다
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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