• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

제로초님~

20.06.30 21:50 작성 조회수 133

0

제로초님 안녕 하세요 궁금 한게 있어서 물어 봅니다.

const [ testList, srtTestList ] = useState([ "test1", "test2", "test3", "test4", "test5"])

const [ list, setList ] = useState({

   test1: "", test2: "", test3: "", test4: "", test5: "", 

})

if(v == "test1"){

    setList((prevState) => ({

        ...prevState,

        test1: aa

    }));

}

if(v == "test2"){

    setList((prevState) => ({

        ...prevState,

        test2: aa

    }));

}

if(v == "test3"){

    setList((prevState) => ({

        ...prevState,

        test3: aa

    }));

}

if(v == "test4"){

    setList((prevState) => ({

        ...prevState,

        test4: aa

    }));

}

if(v == "test5"){

    setList((prevState) => ({

        ...prevState,

        test5: aa

    }));

}

{testList.map((v, i) => 

                    <div key={v}>

                        <div >{v}</div>

                        <input type="text" onChange={test1(v)}/>

                        <div> {v}</div>

                    </div>

)}      

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

제가 위와 같은 코드를 줄일 려고 하는데 

const test1 = (v) => (e) => {

    const aa = e.target.value

    for(let i = 0; i < testList.length; i++){

        if(testList[i] == v){

            setList((prevState) => ({

                ...prevState,

                `${testList[i]}`: aa

            }));

        }

    }

이런 식으로는 useState는 사용이 안되더라구여 혹시 어떤 방법이 있을지 해서 물어 보게 되었습니다.

답변 1

답변을 작성해보세요.

0

지금 코드에서 이해가 안 가는 부분이, 예를 들어 v가 test1이라면 if (testList[i] == v)에서 testList[i]도 v일텐테

for문의 필요성이 이해가 안 갑니다.

그냥 setList((prevState) => ({ ...prevState, [v]: aa }));

하시면 되지 않나요?