如何更新树中的Redux依赖状态对象?

时间:2019-10-12 19:47:01

标签: reactjs redux

我是Redux的新手,正在开发一个React-Redux应用程序。 在某个时候,我在如何更新树的不同分支中依赖Redux的状态对象方面遇到问题。 我有一个属性Thumbnail和一个Process。我通过两个不同的API调用获取Thumbnail和Process数据,使用mapDispatchToProps来获取数据,并使用优缺点Action和Reducer将两个对象属性都存储到状态树中。 我需要从Thumbnail筛选过程,并根据筛选结果获取Thumbnail,并且需要将另一个对象currentThumbnail存储到商店树中。 提取Thumbnail和Process对象并将其存储到状态中运行良好,因为currentThumbnail我只能在过滤Thumbnail和Process之后才能获取,currentThumbnail始终保持空白。 currenThumbnail不会有任何按钮单击或其他用户交互操作,应在完成“ Thumbnail(缩略图)”和“ Process into”(存储到进程)之后将其设置为异步完成。 我试图进行一些操作以将Thumbnail,Process和currentThumbnail存储到componentdidmount()中,但是Thumbnail和Process被填充了,但是currentThumbnail始终保持空白。 任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以创建动作setCurrentThumbnail并将其分派到componentDidUpdate内部。不确定这是否是最优雅的解决方案,因为componentDidUpdate中的if语句会很复杂并且容易出错。您必须检查“缩略图”和“处理”是否均已成功获取,然后进行计算和分解。

编辑:

要检查请求是否已成功完成,可以在商店内放置isFetchingfailed字段。

如果您使用https://blog.isquaredsoftware.com/2016/10/idiomatic-redux-why-use-action-creators/所述的动作创建器。您可以调度REQUEST_STARTEDREQUEST_SUCCEEDEDREQUEST_FAILED之类的事件来轻松操纵isFetchingfailed