如何保证table组件在使用状态的时候,即时更新数据?

作者站长头像
站长
· 阅读数 15

我在使用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,
      }}
      ....
回复
1个回答
avatar
test
2024-06-30
useEffect(() => {
  formRef.current?.setFieldsValue({
    table: projs,
  });
}, [projs]);  
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容