6

Adazzle データ グリッドのグリッドをRedux-Formベースの反応コンポーネントに埋め込むにはどうすればよいですか?

セル編集を使用するデータ グリッドがあります。Adazzle グリッドは、行の状態変数といくつかのアクセサー メソッドを使用してデータをレンダリングします。行を更新するためのハンドラがあります。これは、フォーム データをグリッドからの変更と同期するために取ったアプローチです。問題は、 でフォームの値を変更した後、pristine フラグが false に設定されないことですhandleGridRowsUpdated

handleGridRowsUpdated({fromRow, toRow, updated}) {
let rows = this
  .state
  .rows
  .slice();

for (let i = fromRow; i <= toRow; i++) {

  //update the data-grid
  let rowToUpdate = rows[i];
  let updatedRow = {
    ...rowToUpdate,
    ...updated
  };
  rows[i] = updatedRow;

  //update the underlying redux-form values
  let entity = this.props.input.value[i]
  this.props.input.value[i] = {...entity, ...updated}
}

this.setState({rows});
}

また、Redux フォームから行を作成する方法を次に示します。Redux フォーム ベースのコンポーネントは、react-data-grid をラップする別のコンポーネントを消費します。

constructor(props) {
 super(props)

 this.state = {
   rows: [],
   filters: {},
   sortColumn: null,
   sortDirection: null,
   selectedIndexes: []
 }

 const {input: {
    value
  }} = props;

 this.state.rows = value;
}

グリッドからの変更された値のみがサーバーに返されるように、おそらく彼がグリッドを更新するだけの非表示のフォームコントロールを使用することも考えていました。

4

0 に答える 0