在useEffect第二个参数变化的时候,需要在父组件里面更改这个值的地方加一个判断,如果有值则设置为空,else更新这个值。useEffect第二个值可以是表达式
父组件里面
//授权树展示
const handleRoleModalVisible = (RoleModelVisibel: boolean, record?: any) => {
setRoleModalVisible(RoleModelVisibel);
// console.log(record)
if(RoleModelVisibel==undefined){
setroleAuth(undefined)
}else{
setroleAuth(record)
}
};
子组件里面
const {roleAuth, treeData, roleModalVisible, handleRoleModalVisible} = props;
useEffect(() => {
queryTreeId({role_id: roleAuth.roleId}).then(res => {
setCheckedKeys(res.data.content)
setSelectedKeys(res.data.content)
})
}, [roleAuth!==undefined])
在最后
{
roleAuth&&<Authority roleAuth={roleAuth} treeData={treeData}
roleModalVisible={roleModalVisible} handleRoleModalVisible={handleRoleModalVisible}/>
}