如何以及何时使用React& amp;持久保持用户交互(upvotes / likes)终极版?

时间:2016-06-22 17:21:56

标签: reactjs redux

试图了解如何最好地实现这一点:

我有一个使用React / Redux / Postgres构建的CRUD应用程序,我希望能够在文章中保留类似用户upvotes的内容。使用Redux,我可以简单地触发一个可以打开/关闭它的动作,但如果我想跟踪它有多少upvotes,我必须将每个upvote保存到我的postgres数据库。

这是我到目前为止的想法,但不确定这是否是处理这样的事情的正确方法:

点击upvote时,应该触发一个动作,增加redux中的投票值。然后,我的服务器的POST请求将通过在componentWillReceiveProps()中调用的动作创建者进行,因为商店会更新并传递更新的道具。

这是对的吗?

谢谢,非常感谢任何和所有帮助!

1 个答案:

答案 0 :(得分:0)

让您的商店与您的数据库保持同步可能是一个更好的主意,并使用该组件的本地状态来存储临时upvote,直到后端回复为止。因此你可以这样做:

  1. 触发操作并将组件的本地状态设置为+1投票
  2. 操作发送POST请求,成功回复后发送更新到redux商店
  3. 组件使用新值(反映db的实际更新)接收props,并在componentWillReceiveProps挂钩中刷新其状态。如果组件中可以有其他更新,您可以通过检查道具是否确实发生更改来避免刷新状态。
  4. 这是一个天真的例子,因为在现实世界的应用程序中,您可能希望添加错误处理并将失败的请求传达给用户