问题描述
主要组件:
const AProfileFilter = ({ data = []) => {
const [getData,setData] = useState([]);
const [getStore,setStore] = useState([]);
useEffect(() => {
setData(prepareFilterData(data));
},[data]);
useEffect(() => {
setStore({ "addMoreOptions": getData.filter((flr) => flr.isShow === false),"displayFields": getData.filter((flr) => flr.isShow === true) })
},[getData]);
// AProfileFilter logic here
// (getStore) addMoreOptions state will be update based on some condition.
return <ASelect defaultValues={getStore.addMoreOptions}>
}
export default ZListingProfileFilter;
子组件:
const ASelect = (props) => {
// ASelect logic here
}
function areEqual(prevProps,nextProps) {
console.log("prevProps > ",prevProps.defaultValues,"nextProps > ",nextProps.defaultValues);
return _.isEqual(prevProps.defaultValues,nextProps.defaultValues);
}
export default memo(ASelect,areEqual);
当前结果:
预期结果:
- 最初可以使用 (Blank Array) [] 然后将其更新为 (Filled Array) [{...}]
- 第二次我想要以前的应该是 (Filled Array) [{...}] 并且更新一个应该是 (Blank Array) [],因为我已经从 AProfileFilter 组件中将其设为空白。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)