私は材料表を使用しています。列の1つにSelectFieldコンポーネントがあります。これはドロップダウンから選択する項目がほとんどありません。ここではサンプルコード:すべての行のドロップダウンのReactJS - テーブルの行のドロップダウン設定
<TableBody
displayRowCheckbox={this.state.showCheckboxes}
deselectOnClickaway={this.state.deselectOnClickaway}
showRowHover={this.state.showRowHover}
stripedRows={this.state.stripedRows}
>
{tableData.map((row, index) => (
<TableRow key={index} selected={row.selected}>
<TableRowColumn>{index}</TableRowColumn>
<TableRowColumn>
<SelectField key={index} value={row.clientId} onChange={this.handleRowChange}>
{clientsDropdownData.map((row, index) =>(
<MenuItem key={row.val} value={row.val} primaryText={row.name} />
))}
</SelectField>
</TableRowColumn>
<TableRowColumn>{row.name}</TableRowColumn>
<TableRowColumn>{row.status}</TableRowColumn>
</TableRow>
))}
</TableBody>
初期値は、テーブルに供給されたデータからClientID値に基づいて適切に設定されています。選択した行のドロップダウンの変更時に、提供されたデータのclientIdプロパティを変更したい。どうすれば達成できますか?反応はすべて状態に関するものです。しかし、どのように私は複数の動的状態を管理できますか?
これは私がSelectFieldののonChangeために持っているものです。
handleRowChange = (event, index, rowValue) => {
//this.setState({rowValue}); how to set state here?
tableData[index]['clientId'] = rowValue; //this doesn't work. But this is what I want. I want to update tableData and also update the UI.
}
のような選択肢を使用することができます。 'tableData'はあなたの州の一部ですか? Fluxや他のパターンを使用していますか?詳細をご記入ください。 –
'tableData'は同じjsxファイルのconstです。 'CONSTたtableData = [ { 名: 'ジョン・スミス'、 ステータス: '就業' のclientId:選択された1、 :真、 }、 { 名: 'ランダルホワイト'、 のclientId:2 、 ステータス: '無職' }、...... .... CONST clientsDropdownData = [{ヴァル:1、名称: 'アボット'}、{ ヴァル:2、 名: 'MSD' }、 .. ' 私は磁束を使用していません。それはちょうど反応し、物質的である。 http://www.material-ui.com/#/components/table – Deepak