평가하는 시점이 다르다. 위에는 평가된 값을 넘겨주는 거고. 아래는 콜백 실행시에 평가되겠지?
익명(106.101)2023-01-16 11:48
아래 형태는 기본적인 배열메서드에서도 등장하니까 개념은 알아둬. 상태 업데이트 로직을 함수로 기술한 거임.
익명(106.101)2023-01-16 11:50
답글
그러니까 입력된 값을 넘겨주는거랑 입력된 값을 평가하는 함수를 실행 후 넘겨주는 차이란거지? 고마운거야 프붕이들 착해
익명(211.36)2023-01-16 11:52
답글
어 비슷해 정확히는 함수는 넘겨주고 실행은 니(리액트)가 알아서 해
익명(106.101)2023-01-16 11:53
더 파보면 동작의 기술과 동작의 실행시점을 분리한다는 함수형 프로그래밍의 설계방법에 대해서도 생각해볼수있어
익명(106.101)2023-01-16 11:51
클래스 컴포넌트 시절 this.setState(함수) 때 유물인뎅 그때랑 리액트훅 쓰는 지금시절의 setState(함수) 쓰는 이유가 조금 달라졌음.
현재 setState(함수)는, 이전값을 함수를 통해 받기 때문에 잘못된 이전값을 참조해서 새값을 생성하는 경우를 방지함.
위는 객체고, 아래는 콜백임
평가하는 시점이 다르다. 위에는 평가된 값을 넘겨주는 거고. 아래는 콜백 실행시에 평가되겠지?
아래 형태는 기본적인 배열메서드에서도 등장하니까 개념은 알아둬. 상태 업데이트 로직을 함수로 기술한 거임.
그러니까 입력된 값을 넘겨주는거랑 입력된 값을 평가하는 함수를 실행 후 넘겨주는 차이란거지? 고마운거야 프붕이들 착해
어 비슷해 정확히는 함수는 넘겨주고 실행은 니(리액트)가 알아서 해
더 파보면 동작의 기술과 동작의 실행시점을 분리한다는 함수형 프로그래밍의 설계방법에 대해서도 생각해볼수있어
클래스 컴포넌트 시절 this.setState(함수) 때 유물인뎅 그때랑 리액트훅 쓰는 지금시절의 setState(함수) 쓰는 이유가 조금 달라졌음. 현재 setState(함수)는, 이전값을 함수를 통해 받기 때문에 잘못된 이전값을 참조해서 새값을 생성하는 경우를 방지함.
잘못된 이전값이란 이런경우.. const [val, setVal] = useState(0) useEffect(() => { setInterval(() => setVal(val + 1), 1000) }, [])
이걸 함수로 고쳐봐