我是React-Redux的新手,我有一个应用程序,其所有存储都预先加载在index.js
文件上,该文件是呈现该应用程序的入口点。我的页面中有以下代码(部分代码)。
if(Auth.isUserAuthenticated()){
store.dispatch(getProductCategories());
store.dispatch(getProducts());
store.dispatch(getAuctions());
store.dispatch(getAppSettings());
store.dispatch(getWalletTransactionHistory());
store.dispatch(getAllUsers());
store.dispatch(getParticipatedAuctions());
store.dispatch(getParticipatedAuctionsList());
store.dispatch(getWalletBalance())
}
store.dispatch(getHomePageAuctions());
store.dispatch(getAllPageAuctions());
store.dispatch(getPriceCards());
render(
<AppContainer>
<App store={store} history={history} />
</AppContainer>,
document.getElementById('app')
);
以上操作在每次路由更改时都会调度,但是我希望它在页面load上只调度一次。我什至尝试将其放置在App component
中的ComponentDidMount()
上,还尝试将其放置在该组件的constructor()
中,但是没有运气不及预期,并且搜索了google但没有运气完全匹配或与其相似
答案 0 :(得分:0)
我建议将您的store.dispatch调用移至App.js的componentDidMount中。由于App.js仅会挂载一次,因此只会触发一次。