【发布时间】:2018-01-06 19:44:53
【问题描述】:
我的 Angular (4.x) 应用程序中有 @ngrx/store 包,并且正在从 v2.2.2 -> v4.0.0 升级。我可以看到迁移说明说:
payload 属性已从 Action 接口中移除。
然而,他们给出的例子似乎完全违反直觉(在我看来......)。
我有一个 reducer 函数,如下所示:
export function titleReducer(state = { company: 'MyCo', site: 'London' }, action: Action): ITitle {
switch (action.type) {
case 'SET_TITLE':
return {
company: action.payload.company,
site: action.payload.site,
department: action.payload.department,
line: action.payload.line
}
case 'RESET':
return {
company: 'MyCo',
site: 'London'
}
default:
return state
}
}
正如预期的那样,现在会引发打字稿错误:
[ts] 类型“操作”上不存在属性“有效负载”
但是我从迁移指南中不知道这也应该改变。有什么想法吗?
【问题讨论】:
-
你能显示 Action 类的导入吗?
-
@JaroslawK。
import { ActionReducer, Action } from '@ngrx/store'; -
好的,您能展示一下您是如何使用有效负载调用 Action 的吗?实际上或其他方式
-
@JaroslawK。我不太清楚你的意思,上面是我的减速器功能,然后我将它提供给我的应用程序模块,然后在我的组件中提供
.select('title')。我不会在任何地方直接调用 Action -
我说的是,你在哪里调度 Action(.dispatch(new Action() or Effect)
标签: angular typescript ngrx ngrx-store