0

我刚从 Angular-2-Project 中的 ngrx/store 开始。我的问题涉及通过 store 的 dispatch-method 分配动作:动作会通过所有 reducer 传递吗?这是否意味着动作类型必须是全球唯一的?这个对吗?

我问这个问题是因为在某些教程中,动作的类型是很短的字符串,就好像它们在某种程度上受到了局部限制。但是如果它们是全局的,应该有某种前缀命名空间,对吧?

谢谢!

4

2 回答 2

1

是的,动作类型必须是唯一的,这是正确的。

如果您检查 ngrx 示例,它使用操作创建者模式,该模式在操作前面加上操作类型的名称。

https://github.com/ngrx/example-app/blob/master/src/app/actions/book.ts

于 2017-05-16T15:44:11.047 回答
1

是的,商店将你所有的减速器合二为一,因此将有效地向所有减速器发送一个动作。如果许多 reducer 具有匹配的操作,它们都将执行它们为该操作所拥有的代码。

使您的操作独一无二的一种方法是通过类而不是直接通过字符串常量公开它们,这里有一个示例:

https://github.com/ngrx/example-app/blob/master/src/app/reducers/books.ts

您可以在 app/actions 中查看操作是如何定义的

于 2017-05-16T15:47:51.753 回答