Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更新表物料界面中的数据_Reactjs_Material Ui - Fatal编程技术网

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]: {}
      }
    }));
}