是否可以初始化redux存储一次并在多个页面中使用?

时间:2018-06-09 17:35:32

标签: javascript reactjs redux react-redux

我有一个redux商店。让我们说状态是{names:[], address:[]}。有多个页面,并且都使用namesaddress作为属性。但是,我必须在每个页面中进行API调用以获取namesaddress这会增加网络流量。是否有一种解决方法可以帮助存储在第一次API调用和存储中获得的值以供以后使用,以便可以重用获得的值而无需再次调用API?

2 个答案:

答案 0 :(得分:1)

您可以完全按照您在问题中提出的建议行事。您只需要知道您所需的信息是否已经存储在商店中。

使用设置为false的标记初始化商店。

const INITIAL_STATE = {
  names: [],
  address: [],
  upToDate: false
}

当您需要拨打api电话时,请检查标志。如果它已经成立,那就简单地跳过。

if (!this.props.exampleReducer.uptoDate) {
  // Make the api call
}

最后,当你完成api通话时,你需要将标志设置为true。

...
case: 'API_CALL_SUCCESS':
  return {
    names: [ ... ],
    address: [ ... ],
    upToDate: true
  }
...

答案 1 :(得分:0)

您可以导出商店并将其导入您希望的任何文件中:

// App.js
export const store = configureStore();

// any_file.js
import { store } from './../App';

...
store.dispatch(...);

store.getState()... ;