Redux:将参数传递给可以从 State 检索的 Actions?
Redux: Passing down Arguments to Actions that could be retrieved from State?
我有 collection 篇文章。用户有时会编辑或删除文章。我的应用程序跟踪当前正在处理的文章的状态(称之为 currentArticleId
)。
现在,当用户编辑或删除文章时,我会把我的 action-creator 和 currentArticleId
作为参数(例如:deleteArticle(this.props.currentArticleId)
),还是 [=21] =]NOT 这样做,只是在没有参数的情况下触发动作创建者 (例如:deleteArticle()
),然后从我的状态中检索 currentArticleId
动作创作者?
此处的最佳做法是什么?为什么我会选择一种解决方案而不是另一种?
我会通过传入文章 ID 使您的操作创建器更加灵活,然后您的删除文章操作可以删除当前文章或它想要删除的任何其他文章。
编辑:我想补充一点,通常有更好的替代方法可以将此类信息保存在全局状态中。如果你在一个页面上只有 editing/deleting 一篇文章,那么你可以有一个 URL 像 article/{id}/edit
然后从那里获取 ID 并将它传递给你需要的东西,或者如果你有一个文章列表,每个文章都有编辑器,考虑将文章 ID 作为道具传递到编辑器组件中。
如果你所说的状态是指 Redux 应用程序状态,那么没有正确或错误的答案。您甚至可以执行两个操作 - deleteCurrentArticle()
或 deleteArticle(articleId)
并使用更适合您的操作。
但是,如果您询问的是组件状态,我认为动作创建者应该与组件分离。所以我更愿意将 currentArticleId 作为参数传递。
我有 collection 篇文章。用户有时会编辑或删除文章。我的应用程序跟踪当前正在处理的文章的状态(称之为 currentArticleId
)。
现在,当用户编辑或删除文章时,我会把我的 action-creator 和 currentArticleId
作为参数(例如:deleteArticle(this.props.currentArticleId)
),还是 [=21] =]NOT 这样做,只是在没有参数的情况下触发动作创建者 (例如:deleteArticle()
),然后从我的状态中检索 currentArticleId
动作创作者?
此处的最佳做法是什么?为什么我会选择一种解决方案而不是另一种?
我会通过传入文章 ID 使您的操作创建器更加灵活,然后您的删除文章操作可以删除当前文章或它想要删除的任何其他文章。
编辑:我想补充一点,通常有更好的替代方法可以将此类信息保存在全局状态中。如果你在一个页面上只有 editing/deleting 一篇文章,那么你可以有一个 URL 像 article/{id}/edit
然后从那里获取 ID 并将它传递给你需要的东西,或者如果你有一个文章列表,每个文章都有编辑器,考虑将文章 ID 作为道具传递到编辑器组件中。
如果你所说的状态是指 Redux 应用程序状态,那么没有正确或错误的答案。您甚至可以执行两个操作 - deleteCurrentArticle()
或 deleteArticle(articleId)
并使用更适合您的操作。
但是,如果您询问的是组件状态,我认为动作创建者应该与组件分离。所以我更愿意将 currentArticleId 作为参数传递。