inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실무 중심! FE 입문자를 위한 React

12-3. Recoil로 데이터 관리하기

setAnswers 에 함수가 들어가도 괜찮은건가요?

357

junyoung.jeong

작성한 질문수 2

0

안녕하세요. 유익한 강의 감사합니다.

const useCurrentAnswer = () => {

  const step = useStep();

  const [answers, setAnswers] = useRecoilState(answersState);



  const answer = answers[step];

  const setAnswer = (newAnswer) => {

    setAnswers((answers) => {

      // 새로운 답변 렌더링 (answers 는 그냥 변수명 )

      const newAnswers = [...answers]; // 기존 답변목록을 복붙함 (불변성의 법칙을 지켜라 / 기존 데이터는 건들지마..)

      newAnswers[step] = newAnswer; // 새로 작성한 답변을 복붙한 배열에 넣어줌

      return newAnswers; // 새로운 답변 목록 반환

    });

  };

  return [answer, setAnswer];

};

에서

 

answer  - String / 답변

answers - String[] / 답변 목록  

 

setAnswer  - answer를 렌더링해주기위한 함수 / setAnswer(param) { answer = param }

setAnswers - answers를 렌더링해주기위한 함수 / setAnswers(param) { answers = param }

 

로 이해되는데 그렇다면 setAnswers에 함수가 들어가도 괜찮은건지 궁금합니다.

 

setAnswers((answers) => {

  const newAnswers = [...answers];

  newAnswers[step] = newAnswer;

  return newAnswers;

});

는 setAnswers(화살표함수) { answers = 화살표함수} 이고

answers는 화살표함수가 되는게 아닌가요?

 

answers는 함수가 되어 입력된값을 리턴해서 바로 answers에 할당되는건가요?

아니면

setAnswers에서 함수가 실행되어 리턴된 값이 answers에 할당되는 건가요??

react redux node.js sass swr

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

setAnswers에 함수를 넣어도 괜찮습니다. React의 useState나 Recoil의 useRecoilState를 사용할 때, 상태 값을 갱신하는 함수를 파라미터로 전달할 수 있기 때문입니다. setAnswers((answers) => { … }) 부분에서 answers는 현재의 상태 값을 파라미터로 받아와서 새로운 값을 반환하는 함수입니다. 그리고 이 함수를 setAnswers에 전달하여 answers 상태 값을 갱신할 수 있도록 합니다.

즉, setAnswers((answers) => { … }) 부분이 실행되면 answers는 현재의 상태 값을 받아와서 함수 내에서 새로운 값을 계산하고 이 값을 반환하여 answers 상태를 갱신할 수 있게 됩니다. 따라서 setAnswers에 함수를 전달하여 상태 값을 갱신하는 것은 올바른 방법이에요.

이해에 도움이 되셨기를 바랍니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요!

라우터 궁금사항

0

48

1

자료 Git Source 주소 ??

1

77

1

교육자료 소스 바로 실행시..

0

92

1

교육자료 소스 바로 실행시..

0

68

1

13-1, 13-2 질문

0

132

1

12-2. Recoil -> Jotai 변환 코드 공유합니다.

4

216

1

recoil error 나시는 분들 보세요

3

131

1

어려워요 뭔소리죠 대체

3

318

1

사진이 잘 안보여요.

0

159

1

반복문 사용법은 안알려주고 주의사항만 알려주시는거군요

1

248

0

hooks recoil불러오는 과정에서 src내부에 있는 파일이 안불러와집니다

0

126

1

제발 코드샌드박스 링크 좀 달아주세요....

2

538

2

App.js > QuestionBox > answers ={answers[step]}, QuestionBox.js > answer

0

141

0

4.2 React 렌더링 과정 에서 왜 컴포넌트가 두 번씩 호출될까요?

0

176

1

useEffect 관련 질문드립니다.

0

138

0

jotai로 변경했을 때 코드

0

438

3

리코일이 업데이트가 안된지 오래됐다고하네요

3

463

1

학습 링크

0

364

1

12-2 질문

0

663

3

5-1 학습링크

1

270

1

7-5. 메모 삭제 기능에 문제가 있습니다.

1

244

0

실습링크

0

326

1

2-6 구구단 배열 넣어서 출력시 질문

0

148

1

[2-1] 강의링크 메모용

4

925

1