首页 > 解决方案 > 是否可以在每个屏幕安装(导航)中获取数据 React-Native

问题描述

考虑一个实体: ,我有一个向用户Product显示的页面。Products

在显示的页面Products中,componentDidMount我请求 API 并获取数据。现在只有一个名为的全局对象GlobalState,或者Redux store我将获取的数据保存在我的全局状态中。

然后在我的页面中,我使用全局状态(如前所述,Redux store或者只是一个global object)来显示数据。到目前为止,这是我的方法。

问题就在这里:每次我导航到页面componentDidMount时都会被调用并发出 api 请求并再次填充全局状态。这个可以吗?如果是这样,将它们保存在全局状态有什么意义。我认为我一次又一次地做某事没用。

标签: reactjsreact-nativeredux

解决方案


@Amas,你的权利,bcoz componentDidMount组件,每次(即)在导航到该屏幕时运行。如果您需要更新全局变量值或状态,它的方法是可以的,除非不需要。

还尝试将 API 请求调用从componentDidMount. 它会影响您的应用程序运行速度非常慢。建议创建新函数在此处粘贴 API 请求...

前任:

ComponentDidMount(){ 
   this.apiReq();
} 


apiReq(){
    request code here....
 }

推荐阅读