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