react 项目使用 Ant Design Table表格中使用Checkbox.Group 组件默认值 defaultValue变化页面不刷新

问题描述

react 项目使用 Ant Design Table表格中使用Checkbox.Group 组件默认值 defaultValue变化页面不刷新。

const columns = [
    {
        title:'标签',
        dataIndex:"labelCodes",
        key:"labelCodes",
        width:500,
        render:(text,record) =>(
            <Checkbox.Group defaultValue={record.labelCodes} key={record.labelCodes}>{
                    this.state.labelList.map(item => (
                        <Checkbox 
                            key={item.value} 
                            value={item.value} 
                            onChange={(e) => this.onChange(e,record.id)}>{item.label}</Checkbox>
                    ))
                }
            </Checkbox.Group> 
        )
    },

];


<Table columns={columns} dataSource={this.state.itemList} />

当接口请求返回的this.state.itemList数据发生变化时,传递给页面表格中的Checkbox.Group defaultValue的值发生变化但页面不能刷新。使用this.forceUpdate()以及setState({ itemList:[...itemList]})均没有效果。

解决办法

  • Checkbox.Group添加keydefaultValue的值**,即可当this.state.itemList.labelCodes变化时,页面可以取到数据更新之后的最新视图。

    
     <Checkbox.Group defaultValue={record.labelCodes} key={record.labelCodes}>
    
    
  • defaultValue属性更改为value属性。

    
    <Checkbox.Group value={record.labelCodes} key={record.labelCodes}>
    
    
posted @ 2022-05-14 02:15  Scok  阅读(1600)  评论(0编辑  收藏  举报