根据 react-table 中的条件禁用某些行

Disabling certain rows based on condition in react-table

我需要根据特定条件禁用某些行。这是我的代码:

<ReactTable    
  data={this.state.categoryTable}
  loading={this.state.loading}
  noDataText="Please select a country template"
  columns={[
    {
      Header: 'Category/Lot',
      accessor: 'category_name'
    }, {
      Header: "Display Name",
      accessor: "display_name",
      Cell: this.renderEditable
    }, {
      Header: 'Price(per month)',
      accessor: 'price',
      Cell: this.renderEditable
    }, {
      Header: 'Spots',
      accessor: 'spots',
      Cell: this.renderEditable
    }>

当 Category/Lot 等于 "South America"

时,我需要禁用价格和点行

我发现要访问当前行中的另一个字段,您应该访问 row.row

所以,你的代码应该这样写:

<ReactTable    
  data={this.state.categoryTable}
  loading={this.state.loading}
  noDataText="Please select a country template"
  columns={[
    {
      Header: 'Category/Lot',
      accessor: 'category_name'
    }, {
      Header: "Display Name",
      accessor: "display_name"
    }, {
      Header: 'Price(per month)',
      accessor: 'price',
      Cell: row => row.row.category_name=="South America" ? ***disable*** : row.value
    }, {
      Header: 'Spots',
      accessor: 'spots',
      Cell: row => row.row.category_name=="South America" ? ***disable*** : row.value
    }]}
 />

现在,我不确定禁用行是什么意思...但是您可以处理 table 中的 "disabled" 索引集合或类似解决方案的状态。

或者,如果您要在单元格内渲染其他组件,那么您可以将 "disable" 传递给某些 属性:

Cell: row => (<SomeSubComponent disable={row.row.category_name=="South America"} value={row.value} />)

希望我有所帮助:)