所以我想使用API提取一些数据,然后将其存储到我的Redux Store中以在任何地方使用它。
抓取效果很好,我的控制台向我显示了该动作和reducer也在起作用。
但是在我的“列表”组件中,我的渲染方法和构造函数中的this.props
是undefined
(参见控制台捕获)。
为简单起见,我制作了一个codeandbox:https://codesandbox.io/embed/reduxcrypto-k16tz
我不知道该怎么办。
感谢您的帮助
答案 0 :(得分:0)
减速器中的这个东西会删除响应内容:
cryptoDataCopy = {
currency: action.currency // there is no currency field in your action
// probably you want to use action.payload and save it to crypto field
// since List tries to use crypto field
// crypto: action.payload
};
此外,您不是在减速器中使用动作有效负载,而只是复制先前的状态。应该有一些东西可以将有效负载放入state.crypto:
...
var cryptoDataCopy = { ...cryptoData, crypto: '123' };
// cryptoDataCopy.currency = {
// currency: action.currency
// }
return {
...cryptoData,
currency: action.currency, // actually, there is no such field in your action
crypto: action.payload
};
您的请求未返回任何内容。您可以添加捕获以查看有关失败请求的日志:
.then(response => {
...
}).catch(
() => {
console.log('no response')
}
);