这个生命周期的功能实际上就是将传入的props映射到state上面。
getDerivedStateFromProps是一个静态函数,也就是这个函数不能通过this访问到class的属性,也并不推荐直接访问属性。而是应该通过参数提供的nextProps以及prevState来进行判断,根据新传入的props来映射到state。
该函数必须有返回值。当props传入的内容不需要影响state,就必须返回一个null
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.id !== prevState.id) {
return {
editData: nextProps.editData,
id: nextProps.id,
targetKeys: nextProps.editData?.details?.map(item => item.companyId)
}
}
return null
}