如何解决Redux中操作文件的目的是什么?
我对理解redux有很大的疑问。最糟糕的是,我必须将其与vanillia js一起使用,但是首先我必须了解redux的元素。好吧,我了解减速器。有状态和功能。但是行动呢?仅有可能采取的措施的名称,例如:
a
只有给我的东西,然后在reducer的switch / case中,我添加了我运行的某些功能(来自reducer)。而且我不知道此功能添加应该真正做什么。我在reducer中有函数,那么为什么我需要一些返回类型和数字的东西?即使我有很多功能,动作也只会给我更多的名称,变量和功能,最终会给我带来很多麻烦和发现问题。而redux应该给出相反的结果。
而且,我真的很明白,问题是我不了解某些内容,如果我理解它,redux应该可以为我提供清晰易懂的全局存储。
所以,有人可以帮我吗?
解决方法
您在说的是“ Action Creators”。
并非严格要求。您可以像dispatch
一样直接呼叫dispatch({ type: ADD,number})
。但是大多数人都喜欢使用动作创建者,以便他们可以调用dispatch(add(number))
。它增加了一层抽象,以便您可以调用动作而无需知道底层动作对象的结构。如果操作对象很复杂,它可以简化操作。
redux中的“动作”是具有type
属性的对象,并且还具有减速器执行动作所需的所有其他信息。在您的情况下,额外的信息只是number
,但它可能更复杂。
这是您的操作:
{ type: ADD,number}
动作创建者是一个函数,该函数接受一些参数并使用这些参数创建动作对象。
这是您的动作创建者:
export function add(number) {
return { type: ADD,number}
}
您的情况很简单,但这是一个示例,向您展示如何变得更复杂。
export function updateUser(userId,changes) {
return {
type: UPDATE_USER,payload: {
id: userId,changes,},meta: {
timestamp: Date.now(),}
};
}
此功能除了创建动作外不会执行任何操作。它不会更新用户-这是reducer的工作。
如果您想减少样板数量,可以考虑使用Redux Toolkit软件包,该软件包通过基于reducer自动创建动作来简化操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。