따라서 부모 구성 요소에서 가져온 사용자 지정 값으로 상태를 초기화해야하는 특정 문제가 있습니다 props.theValue
. 그러나 문제는 props.theValue
상태를 설정할 때 준비되지 않았다는 것입니다. 따라서이 줄은 작동하지 않아야합니다.
const [grams, setGrams] = useState(props.theValue)
시나리오 : 부모 화면에 음식 목록 이 있습니다. 사용자가 클릭하면 선택한 항목이 조작되기 전에 선택할 수있는 몇 가지 옵션이있는 모달 (팝업처럼)이 열립니다.
내가 무엇을 시도 했습니까?
useState(-1)
를 설정하여 값을 설정해야 props
하지만 다시이 상태에서 소품이 준비되지 않았습니다.setGrams
할 때마다 Loop Rendering 오류가 발생하고 props.theValue도 여전히이 시점에서 정의되지 않습니다.예 :
이 경우 두 TextInput 모두 부모 구성 요소에서 가져온 초기 값을 가져야하며 조작해야합니다.
Redux를 사용하여 구성 요소 간의 데이터를 조작하거나 다음과 같이 시도 할 수 있습니다.
전역 변수를 설정합니다.
let previousObj = null
그런 다음 Modal invisible 및 Visible을 다시 설정하더라도 데이터를 한 번만 업데이트하도록 제한 시간을 설정합니다.
setTimeout(() => {
if(food.grams != undefined && previousObj != food){
previousObj = food
setGrams(""+food.grams)
}
}, 100)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다