我们在React应用程序的大部分内容中使用Redux。我们挣扎的一个领域是上下文菜单。到目前为止它的工作方式如下:
onRightClick -> createItems -> openMenu -> onItemClick: invoke callback and close menu
所以我们在点击每个项目时都有一个回调。使用Redux,它不再有效,因为:
dispatch(actionCreator_openContextMenu(items))
...执行商店更新。动作创建者返回的Redux操作中不能包含回调,因为它们不可序列化/可jsonizable。
我们还需要在许多上下文菜单点击操作中执行异步操作(即服务器往返),因此点击操作不是普通商店更新。
问题是:这与Redux模式及其约束如何一致?如何使用Redux做到这一点?
澄清一下:这个问题不关于反应中的UI方面,它关于redux。
答案 0 :(得分:1)
我实际上写了一篇文章,涵盖了这个问题:Creating Reusable Generic Modals in React and Redux。我在该文章中描述的方法可以概括为请求对话框的代码包括一个预制的操作对象,该对象作为prop传递给对话框组件,然后对话框可以调度该操作(可能附加了附加信息) )当它关闭时。
其他几个选项:
<img src="http://elbrus.ecommercesuite.co.uk/Customisation Tool/SVG Templates/Bookmark.svg" />
时,中间件都会返回一个承诺,并在您分派相应的PUSH_MODAL_WINDOW
时解析承诺。答案 1 :(得分:0)
我认为您正在寻找的是一个可以处理异步副作用的redux中间件。有很多图书馆可以帮助解决这个问题,但我建议你的团队调查下面的一些图书馆,这些图书馆有很好的社区并且有很好的文档记录: