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
});
});
}
我正在从我的后端返回一个预测列表,它呈现在仪表板中(我正在 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
});
});
}