expandedRowRender ,onexpand,expandedRowKeys,同时使用发生冲突?!

expandedRowRender ,onexpand,expandedRowKeys,同时使用发生冲突?!
  • showListDom:存放展开行数据
  • expandedFunction:请求后端数据
  • arr:存放当前行的id数组(只有一项)

render方法内:

<Table
    dataSource={this.state.SampleData}
    rowKey={record => record.id || record.key}
    columns={columns}
    onChange={this.handleStandardTableChange}
    pagination={this.state.pagination}
    loading={this.state.loading}
    expandedRowRender={(record) => { return this.state.showListDom[record.id] || null; }}
    onExpand={(expanded, record) => { return this.expandFunction(expanded, record) || null;}}
   expandedRowKeys={this.state.arr}//加上这行就报错
  />


报错信息:

clipboard.png


想要达到的效果是:点击一行时,其他行自动收缩,每次只展开一行。
不加expandedRowkeys时,可以达到效果:在一行(a行)展开的情况下,去点击另一行(b行)的“+”展开符,b行可以得到数据并展开,同时,a行数据被置为空,但并未收缩(展开符仍是”+”,下方显示空表)
阅读 5.2k
1 个回答

用state里面的arr直接存储expandedrowKeys,
this.state.arr是这样的:空、不空、空、不空...
使其处于不稳定的状态,应该使用稳定的数组存储,然后定期赋值给state里面的expandedrowskeys
this.state.expandedrowsKeys是始终有一项值的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题