私はリアクションが新しく、データグリッドを作成しようとしていますが、今は動作していますが、間違っているような気がします。ここに詳細があります:リアクションで状態を持ち上げる正しい方法
各行には複数の入力(テキスト、選択、ボタン)があり、削除、挿入行ができます。
今私はすべてのデータをオブジェクトの配列として保持するGridComponentを持っています。入力が変化したときに、それが呼び出すためにハンドルをRowComponentにオブジェクトを渡しますレンダリングに:
this.state.data.map((rowdata, index) =>
<RowComponent key={rowdata.id} rowdata={rowdata} dataindex={index} handleChange={this.handleChange} />)
問題はRowComponentがhandleChangeを呼び出すときに、GridComponentがオブジェクトを更新するために、rowIndexプロパティを使用しています。しかし、それは遅く、入力中に少し遅れがあります。
この問題を解決するために、私は入力中にデータを制御するためにRowComponentで状態を宣言し、onBlurイベントでhandleChangeを呼び出すだけで、非常にうまく動作しています。しかし、今私はグリッドと行に2つの状態があります、それは正しい方法ですか?
どちらの方法も問題ありません。私たちが話しているデータの量はどれくらいですか? idは何らかの理由で変更されますか? –
あなたはfluxやreduxのようなものを使用していませんか? –
@HoriaComan:最初のアプローチが遅く、2番目のアプローチがデータを複製するので、好奇心が強いだけではありません。 idはキーのためだけです – Tubc