어딘가에서 다음 예제를 찾았고 어떻게 작동 해야하는지 알 수 없습니다. 누군가 설명해 주시겠습니까? setState의 사용법을 이해하고 초기화했지만 prevInputData 변수를 이해하지 못합니다! setInputData를 호출하는 것은 무엇이며 setInputData가 호출 될 때 이전 상태가 매개 변수로 전달되는 방식, 너무 혼란 스럽습니다!
//state stuff
const [inputData, setInputData] = useState({firstName: "", lastName: ""})
//onChange handler
function handleChange(event) {
const {name, value} = event.target
setInputData(prevInputData => { //HOW THIS IS SUPPOSED TO WORK?
return {
...prevInputData,
[name]: value
}
});
}
//form input
<input name="lastName"
value={inputData.lastName}
onChange={handleChange}
/>
이것은 일종의 오해 의 소지가 있습니다. 그것은 아니다 실제로 이전 렌더링주기의 상태 값, 그것은 인수로 전달되는 현재 상태 값의 기능 상태 업데이트 콜백 . 콜백 업데이트 상태로, 조정 중에,하지만 호출 될 때까지는, 그 것이다 지금 마지막의 상태는주기를 렌더링하고, 다음 상태 값을 반환합니다.
setInputData(prevInputData => { // actually current state when queued
return {
...prevInputData,
[name]: value
}
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다