【问题标题】:Material Table refreshes instead of appending onRowAdd材料表刷新而不是附加 onRowAdd
【发布时间】:2019-09-09 15:07:47
【问题描述】:

我在 React 中使用了 Material UI 中的材料表。当数据静态传递时,它会逐行显示,但是当我从 Web 服务中获取数据时,已经添加了行更新而不是附加新行。请帮忙。

const [state, setState] = useState({
columns: [
  { title: 'S.No', field: 'Id', type: 'numeric', editable: 'never' },
  { title: 'Roll Number', field: 'Studentid' },
  { title: 'Name', field: 'Name', editable: 'never' },
  { title: 'Year', field: 'Year', editable: 'never' },
  { title: 'Department', field: 'DeptName', editable: 'never'},
],
data: eventRegistrationStudentsList,
});

  <MaterialTable
    style={{ maxWidth: "95%" }}
    title="Student Details"
    id="studentDetailsTable"
    columns={state.columns}
    data={eventRegistrationStudentsList}
    editable={{
      onRowAdd: newData =>
        new Promise(resolve => {
              const data = [...state.data];
              data.push(newData);
              setState({ ...state, data });
              handleStudentIdChange(newData.Studentid);
              resolve();
        }),
      onRowDelete: oldData =>
        new Promise(resolve => {
          setTimeout(() => {
            resolve();
            const data = [...state.data];
            data.splice(data.indexOf(oldData), 1);
            setState({ ...state, data });
          }, 600);
        }),
    }}
    options={{
      search: false,
      actionsColumnIndex: -1
    }}
  />

eventRegistrationStudentsList 持有:

[ DeptName: "AERONAUTICAL ENGINEERING",
Id: 1,
Name: "Jon",
Studentid: "190AE101",
Year: "III" ]

【问题讨论】:

    标签: reactjs material-table


    【解决方案1】:

    问题出在这里

    data={eventRegistrationStudentsList}
    

    您正在更新状态中的列表,但不使用状态中的列表

    data={state.data}
    

    这里。

    【讨论】:

    • 如果我给data={state.data},表格上什么也没有显示,但是行不断增加。
    • 这怎么可能?它必须至少显示初始负载,因为 state.data 是 eventRegistrationStudentsList
    • 不知道为什么,但我设法使用data={[...state.data]}使其工作
    猜你喜欢
    • 1970-01-01
    • 2019-01-19
    • 1970-01-01
    • 2021-05-16
    • 2021-07-13
    • 1970-01-01
    • 2018-05-06
    • 2016-06-15
    • 2014-07-10
    相关资源
    最近更新 更多