React-redux:允许用户就组件

时间:2017-10-02 13:31:23

标签: reactjs react-redux axios

我从后端返回一份预测列表,该列表在仪表板中呈现(我在componentWillMount()中进行API调用)。每个预测都呈现为一个表示组件,并具有喜欢和不喜欢的按钮。用户单击该按钮后,将调用Axios操作,该操作会将事件发布到后端REST API以保存此反馈。

正如我所看到的,我不需要在这里处理Redux的状态,除非我想要禁用按钮或在单击时更改它们。我想要做的就是1)触发按钮上的CSS动画(某种反弹)让用户知道他点击了它,如果Axios动作返回错误,我需要在错误部分显示它

问题在于,如果不经历将Axios结果调度到状态,将其通过reducer,然后将状态映射到组件中的props等等,我无法弄清楚如何执行此操作。对于这种暂时性的东西来说似乎有些过分,不是吗?

1 个答案:

答案 0 :(得分:1)

是的。正如@ReiDien所说

  

你可以直接使用axios而不使用任何减速器。

对于动画和错误消息,您可以使用组件的状态来存储它们。您可能需要一个容器组件来处理状态及其更改。您的处理程序最终会像:

handleLike = () => {
  this.setState({
    liked: true,
  });
  axios.post(...)
    .catch((error) => {
      this.setState({
        error: error,
        liked: false
      });
    });
}