在组件初始渲染之前使用 React hook 到 运行 Mobx 方法

Using React hook to run Mobx method before initial render of component

如标​​题所示,我在 Mobx 商店中有我的状态。我有一个异步方法(操作),它获取数据并将其存储在商店内的 属性 中,我将从那里在必要的组件中访问它。

问题是,目前 属性 将在初始组件渲染中未定义 - 导致组件出错。

我如何利用 useEffect() 使其运行异步方法一次且仅一次 - 在初始组件呈现之前,确保状态可用于 return()?像这样:

const Workflow = () => {
    const store = useContext(WorkflowContext)

    useEffect(async () => {
        await store.getWorkflow()
    }, [])
...

您可以检查商店中的 属性 是否是组件中的 undefined 和 return null 如果是的话。

例子

const Workflow = () => {
  const store = useContext(WorkflowContext);

  useEffect(() => {
    store.getWorkflow();
  }, []);

  if (store.someProperty === undefined) {
    return null;
  }
  return <div>{store.someProperty}</div>;
};