如何从Redux存储访问数据

时间:2019-10-09 15:43:07

标签: reactjs redux react-redux redux-thunk

所以我想使用API​​提取一些数据,然后将其存储到我的Redux Store中以在任何地方使用它。

抓取效果很好,我的控制台向我显示了该动作和reducer也在起作用。

Console Capture

但是在我的“列表”组件中,我的渲染方法和构造函数中的this.propsundefined(参见控制台捕获)。

为简单起见,我制作了一个codeandbox:https://codesandbox.io/embed/reduxcrypto-k16tz

我不知道该怎么办。

感谢您的帮助

1 个答案:

答案 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')
  }
);