React Native,Fetch和Dispatch:如何在mapDispatchToProps()中访问responseData?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native,Fetch和Dispatch:如何在mapDispatchToProps()中访问responseData?相关的知识,希望对你有一定的参考价值。
我从我的“扫描仪”组件中获取componentWillMount()中的JSON数据,如下所示:
async componentWillMount() {
const url = 'https://foo.com/products/product1.json';
fetch(url)
.then((response) => response.json())
.then((responseData) => this.props.dispatchProductLoad())
.catch(error => {
console.log(error);
});
}
以下是我的调度代码:
function mapDispatchToProps(dispatch) {
return { dispatchProductLoad: () => dispatch(productLoad(SOMEDATA)) };
};
export default connect(null, mapDispatchToProps)(Scanner);
变量SOMEDATA应保存来自responseData的值(此时它未定义)
所以我的问题是 - 如何将SOMEDATA的值设置为responseData中保存的值?
答案
你可以用responseData
作为参数调用动作创建者并定义你的mapDispatchToProps
函数
async componentWillMount() {
const url = 'https://foo.com/products/product1.json';
fetch(url)
.then((response) => response.json())
.then((responseData) => this.props.dispatchProductLoad(responseData))
.catch(error => {
console.log(error);
});
}
function mapDispatchToProps(dispatch) {
return { dispatchProductLoad: (response) => dispatch(productLoad(response)) };
};
export default connect(null, mapDispatchToProps)(Scanner);
以上是关于React Native,Fetch和Dispatch:如何在mapDispatchToProps()中访问responseData?的主要内容,如果未能解决你的问题,请参考以下文章
react-native fetch 返回状态码 + json
是否可以在 React Native 中使用 Digest Auth 和 Fetch?
无法读取未定义的 React-Native Firebase React-native-fetch-blob 的属性“DocumentDir”
React Native fetch 不适用于 redux?
React Native,Fetch和Dispatch:如何在mapDispatchToProps()中访问responseData?