Redux:将参数传递给可以从状态检索的操作?



我有一系列文章。用户有时会编辑或删除文章。我的应用程序会跟踪当前正在处理的文章的状态(称之为currentArticleId(。

现在,当用户编辑或删除文章时,我会给我的动作创建者currentArticleId作为参数(例如:deleteArticle(this.props.currentArticleId)(,还是这样做,只是在没有参数的情况下解雇动作创建者(例如:deleteArticle()(,并从我的动作创建器中的状态中检索currentArticleId

这里的最佳实践是什么?为什么我会选择一个解决方案而不是另一个解决方案?

如果您所说的状态是指 Redux 应用程序状态,那么没有正确或错误的答案。您甚至可以有两个操作 -deleteCurrentArticle()deleteArticle(articleId)并使用更适合您的任何操作。

但是,如果您询问组件状态,我认为动作创建者应该与组件分离。所以我更喜欢将当前文章 ID 作为参数传递。

我会通过传入文章 ID 使您的操作创建者更加灵活,然后您的删除文章操作可以删除当前文章或它想要的任何其他文章。

编辑:我想补充一点,通常有更好的选择将这样的信息保存在全局状态中。如果您只编辑/删除页面上的单个文章,那么您可以有一个像article/{id}/edit这样的 URL,然后从那里获取 ID 并将其传递到您需要的内容中,或者如果您有每个文章都有编辑器的文章列表,请考虑将文章 ID 作为道具传递到编辑器组件中。