私は、配列を使用してコンポーネントの状態をよりよく扱う方法を学び、理解しています。ここで私は、私は、この親コンポーネントの後半でレンダリングコンポーネントを生成するためのコンポーネントのcomponentWillMount()
に呼び出す関数は次のとおりです。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
});
};
私はより良い方法は、直接、状態フィールド(this.state.things.push(thingComp);
)へpush()
の代わりになるだろうと思いましたtemp変数に格納するのが面倒です。しかし、それはUIアップデートを引き起こすようには見えないので、私はこれをやる方法だと思っていますが、わかりません。
あなたは直接の状態にプッシュして、代わりに機能 'setState'構文を使用することができます。 EG: 'this.setState((prevState)=> {prevState.things.push(...); return prevState;})'。 'setState'呼び出しの外での状態の変化は、更新を引き起こさないことに注意してください。 – CRice
https://stackoverflow.com/q/26253351/4333038の複製 –