React-redux:允许用户对组件提供反馈

React-redux: allowing users to give feedback on a component

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

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

问题是,如果不经过将 Axios 结果分派到状态、将其通过 reducer、然后将状态映射到组件中的 props 等繁琐的过程,我无法弄清楚如何做到这一点. 对于这种短暂的事情来说,这似乎有点过分了,不是吗?

是的。正如@ReiDien 所述

you can just use axios directly without using any reducers.

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

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