私のコードは、親(Show)コンポーネントと子(Editable)コンポーネントで構成されています。 親には、子要素がプッシュされた配列が含まれています。分かりやすくするためにスクリーンショットを添付しています。JSスプライスが正常に反応しないコンポーネントを削除する
I)は、(スプライスを使用して、子(配列要素)を削除しようとしています。私は、配列のスプライシングに正しい出力を取得しています。スクリーンショットの例配列 "new"を配列から削除する場合arr = [dat2、dat3]フロントエンドで最後の要素が削除され、以下のようにdat2が表示されます。必要に応じてdat2とdat3を取得します。私は正しいインデックスを使用してスプライシングを行っていますが、それはUIでcorectly動作していないようです。
助けてください。私はほとんどすべてのものを試してみました:(
私は必要な機能を転送しています
親コード:
render() {
return(
<div>
<TextField
defaultValue={this.props.result}
hintText={this.props.result}
onChange= {this.changeEg}
id="editText"
/>
<span><IconButton id={"aa"+1} onClick={this.handleMinus} iconStyle={{width: 72, height: 72, float: -60}}><span><MinusIcon /> </span></IconButton></span>
</div>
)
}
handleMinus(){
console.log(this.props.indexEg);
console.log("in Grand child:",this.props.result,this.props.indexEg);
this.props.handleMinus(this.props.indexEg,this.props.indexShowInt)
}
あなたの子供にユニークで永続的なキーを追加して、反応が適切に調整できるようにする必要があります。 –
EditableIntents(key = {index})を作成するときにキーを追加しました – shinite
React Componentsは純粋な関数に基づいているので、 'splice'は状態を直接変更するので決して使用しないでください。その代わりに、 'slice'を利用して、新しいスライス状態を' setState'メソッドで置き換えてください。 –