我在使用zustand做状态管理的时候,
在组件tsx文件内:
const { projs, getProjs } = useStore() useEffect(() => { const data = getProjs() console.log(' data: ', data, projs) // 打印: data: undefine [] }, []);
projs.store.ts中:
projs: [], getProjs: (ipcRenderer) => { ipcRenderer.invoke('getProjs').then((res) => { console.log("projs:", res) // 这里有打印数据 [{...}] // set到state set({projs: res.data}) }) }
但是现在有一个问题,
就是我一个table在组件.tsx中使用projs状态,但是我使用的时候,还未执行set({projs: res.data})
,所以是没有数据的。
请问,我要怎么才能保证table是在有数据了之后也即时更新table内容为有数据呢?
<ProForm<{ table: DispsysProjs[]; }> formRef={formRef} initialValues={{ table: projs, }} ....
useEffect(() => { formRef.current?.setFieldsValue({ table: projs, }); }, [projs]);
const [tableData, setTableData] = useState<DispsysProjs[]>([]); seEffect(() => { setTableData(projs); }, [projs]); <ProForm<{ table: DispsysProjs[]; }> formRef={formRef} initialValues={{ table: tableData, }}