저는 배열을 사용하여 구성 요소의 상태를 더 잘 처리하는 방법을 배우고 이해하려고합니다. 내가 더 좋은 방법은 직접 (this.state.things.push(thingComp);
를) 상태 필드에 push()
에있을 것이라고 생각React를 사용하여 구성 요소 상태의 배열을 올바르게 업데이트
generateThings =() => {
let newThings = [];
for (let j = 0; j < this.state.numberOfThings; j++) {
const pos = this.generatePosition(1, 1);
const thingComp = <Thing key={j} position={pos} />;
newThings.push(thingComp);
}
this.setState({
things: newThings
});
};
대신의 다음은 내가 나중에 부모 구성 요소의 렌더링 구성 요소를 생성하는 구성 요소의 componentWillMount()
에 전화 기능입니다 temp 변수에 저장하는 것이 더 복잡해 보입니다. 하지만 UI 업데이트가 실행되지 않는 것 같아서이를 수행하는 방법이라고 추측합니다. 그러나 확실하지 않습니다.
은 직접 상태로 밀어 대신 기능'setState' 구문을 사용할 수 있습니다. 예 :'this.setState ((prevState) => {prevState.things.push (...); return prevState;})'. 'setState' 호출 외의 상태를 변경하면 업데이트가 실행되지 않습니다. – CRice
중복 된 https://stackoverflow.com/q/26253351/4333038 –