道具回调不返回?

Prop callback not returning?

我将 Material UI Table 与 ReactJS 一起使用,并希望在行为 selected/deselected 时更改状态变量。 TableonRowSelection 每次选择一行时触发:

<Table
  height='300px'
  fixedHeader={true}
  multiSelectable={true}
  showRowHover={true}
  onRowSelection={this.handleRowSelection.bind(this)}
>

我将以下函数传递给 onRowSelection 属性:

handleRowSelection(selectedRows) {
  let contactsImport = [];

  if (selectedRows === 'all') {
    contactsImport = this.state.contacts.new;
  } else if (selectedRows !== 'none') {
    selectedRows.forEach((index) => {
      contactsImport.push(this.state.contacts.new[index]);
    });
  }

  this.setState({
    contactsImport:contactsImport
  });
}

这会正确设置状态,但会阻止 Table 行选择正常运行。如果我单击一行,复选框不会选中 - 它似乎正在选中然后立即取消选中,因为我得到了 'ripple' 动画但没有选中标记。

删除对 setState 的调用可以解决问题,那么 setState 是否可能阻止回调正确返回? 或者这可能是Material UI?

的错误

如果您希望以编程方式控制它,则必须从状态管理单行组件的 selected 属性。 selected 属性 默认为 false,因此当 setState 发生重新渲染时,它将重置回 false