如何确定React useEffect计时?

问题描述

我正在将React Lifecycles转换为Hooks。在运行axios和商店配置之前,App.js页面正在加载首页的数据。因此,api中使用了错误的axios.baseURL。

我用useEffect替换了componentWillMount,但是它在第一个加载页面上使用的useEffect之后运行。

APP.JS

const App = () => {
useEffect(() => {
    (async () => await AxiosConfig.init())();
},[]);

useEffect(() => {
    (async () => await Store.init())();
},[]);

return (
    <Provider store={store}>
        <Router>
          <Switch>
            ...
          </Switch>
        </Router>
    </Provider>
);

}

加载页面

const [data,setData] = useState(null);    

const getData = useCallback(filters => {
    (async () => {
      try {
        let response = await DataService.getAllData(filters);
        if (response && response.status === 200) {
          let data = response.data && response.data.result;
          setData(data);
        }
      } catch (error) {
        ...
      }
    })();
  },[]);

  useEffect(() => getData(filters),[filters,getData]);

<List data={data} />

我该如何确定时间以使配置首先运行?我是否需要将调用合并到一个useEffect中,在成功响应时设置一个标志,并且仅在flag = true时才返回App.js DOM?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...