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
添加key
为defaultValue
的值**,即可当this.state.itemList.labelCodes
变化时,页面可以取到数据更新之后的最新视图。<Checkbox.Group defaultValue={record.labelCodes} key={record.labelCodes}>
-
将
defaultValue
属性更改为value
属性。<Checkbox.Group value={record.labelCodes} key={record.labelCodes}>