如何解决如何确定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 举报,一经查实,本站将立刻删除。