Reactjs 更新表物料界面中的数据
我有一个条目列表,在页面上以表格格式显示。我计划让用户能够编辑列表中的任何项目,因此我将此表中的每个单元格显示如下:Reactjs 更新表物料界面中的数据,reactjs,material-ui,Reactjs,Material Ui,我有一个条目列表,在页面上以表格格式显示。我计划让用户能够编辑列表中的任何项目,因此我将此表中的每个单元格显示如下: <TableCell> <TextField id="standard-bare" defaultValue={items.data[i].firm} margin="normal" /> </TableCell> 因此,理想情况下,我需要获取这些字段的所有新值,以便运行API调用以使用这些信息更新数据库。现在,每次单击check,
<TableCell>
<TextField id="standard-bare" defaultValue={items.data[i].firm} margin="normal" />
</TableCell>
因此,理想情况下,我需要获取这些字段的所有新值,以便运行API调用以使用这些信息更新数据库。现在,每次单击check,我都会得到旧值(这些字段第一次加载时的值)。如何获取新值?您可以在状态中存储数据并更新组件的状态,然后使用状态将数据发送到服务器。您可以存储数据数组,并根据id更改数据的状态 一种方法是显示一个编辑表单,它将有一个文本字段来更新数据。e、 g
class MyComponent extends React.Component {
state = {
data: ['data1', 'data2'] etc
}
// onChange method call on the field change of edit modal
handleChange(event, id) {
const { data } = this.state;
data[id] = event.target.value;
this.setState({data})
}
// in render method. i will be from loop
<input value={this.state.data[i]} onChange={(e) => this.handleChange(e, id)}
类MyComponent扩展了React.Component{
状态={
数据:['data1','data2']等
}
//对编辑模式的字段更改调用onChange方法
handleChange(事件,id){
const{data}=this.state;
数据[id]=event.target.value;
this.setState({data})
}
//在渲染方法中。我将从循环开始
this.handleChange(e,id)}
您还可以在表字段上使用onChange方法您可以在state中存储数据并更新组件的状态,然后使用state将数据发送到服务器。您可以存储数据数组,并根据id更改数据的状态 一种方法是显示一个编辑表单,它将有一个文本字段来更新数据。e、 g
class MyComponent extends React.Component {
state = {
data: ['data1', 'data2'] etc
}
// onChange method call on the field change of edit modal
handleChange(event, id) {
const { data } = this.state;
data[id] = event.target.value;
this.setState({data})
}
// in render method. i will be from loop
<input value={this.state.data[i]} onChange={(e) => this.handleChange(e, id)}
类MyComponent扩展了React.Component{
状态={
数据:['data1','data2']等
}
//对编辑模式的字段更改调用onChange方法
handleChange(事件,id){
const{data}=this.state;
数据[id]=event.target.value;
this.setState({data})
}
//在渲染方法中。我将从循环开始
this.handleChange(e,id)}
您也可以在表字段上使用Onchange方法来跟踪新的/更新的值,您可以考虑以下方法: 1) 引入
rowsChanges
状态并将其设置为空,以跟踪表组件中的新值/更新值
2) 修改文本字段中的值后,将其值连同字段名和行索引一起保存到rowsChanges
状态:
handleTextFieldChange(rowIndex,change) {
this.setState(prevState => ({
rowsChanges: {
...prevState.rowsChanges,
[rowIndex]: {...prevState.rowsChanges[rowIndex],[change.fieldName]: change.fieldValue}
}
}));
}
在哪里
3) 最后,单击“保存”按钮后,将更改保存到db中:
handleSave(rowIndex) {
const rowChanges = this.state.rowsChanges[rowIndex];
console.log("Save row changes into db...")
//clear row changes...
this.setState(prevState => ({
rowsChanges: {
...prevState.rowsChanges,
[rowIndex]: {}
}
}));
}
这里是<强> < /强>(叉)
,要跟踪新的/更新的值,可以考虑以下方法: 1) 引入rowsChanges
状态并将其设置为空,以跟踪表组件中的新值/更新值
2) 修改文本字段中的值后,将其值连同字段名和行索引一起保存到rowsChanges
状态:
handleTextFieldChange(rowIndex,change) {
this.setState(prevState => ({
rowsChanges: {
...prevState.rowsChanges,
[rowIndex]: {...prevState.rowsChanges[rowIndex],[change.fieldName]: change.fieldValue}
}
}));
}
在哪里
3) 最后,单击“保存”按钮后,将更改保存到db中:
handleSave(rowIndex) {
const rowChanges = this.state.rowsChanges[rowIndex];
console.log("Save row changes into db...")
//clear row changes...
this.setState(prevState => ({
rowsChanges: {
...prevState.rowsChanges,
[rowIndex]: {}
}
}));
}
这里是(fork of),因为我有一个材料用户界面,您使用的输入和文本字段是相同的。两者都有onChange方法,其思想是在onChange方法中处理和更新状态。请看,它也有控制输入链接。这将有助于我获得此错误类型错误:无法读取未定义的属性“target”在代码中您将其存储为数组,我通过API从数据库中提取数据,并将其显示为表,如何将其保存到数组中?我假设API可能正在发送一个数组,您通过该数组呈现表格,因为我有一个材质UI,您使用的输入和文本字段是相同的。两者都有onChange方法,其思想是在onChange方法中处理和更新状态。请看,它也有控制输入链接。这将有助于我获得此错误类型错误:无法读取未定义的属性“target”在代码中您将其存储为数组,我通过API从数据库中提取数据,并将其显示为表,我如何将其保存到数组中?我假设API可能正在发送数组,通过该数组您正在渲染表
handleSave(rowIndex) {
const rowChanges = this.state.rowsChanges[rowIndex];
console.log("Save row changes into db...")
//clear row changes...
this.setState(prevState => ({
rowsChanges: {
...prevState.rowsChanges,
[rowIndex]: {}
}
}));
}