Kla*_*r_1 3 typescript ngrx angular ngrx-router-store
当我将“@ngrx/router-store”添加到我的项目时,它会在开发模式和单元测试结果中向应用程序控制台发送垃圾邮件,并显示以下消息:
状态中不存在功能名称“路由器”,因此 createFeatureSelector 无法访问它。确保使用 StoreModule.forRoot('router', ...) 或 StoreModule.forFeature('router', ...) 将其导入到加载的模块中。如果默认状态是未定义的,如路由器状态的情况,则可以忽略此仅用于开发的警告消息。
我试图将router状态属性类型设置为
router: null | RouterReducerState<SerializedRouterStateSnapshot>
Run Code Online (Sandbox Code Playgroud)
和初始状态值
router: null
Run Code Online (Sandbox Code Playgroud)
但它与routerReducer类型冲突,类型只接受
RouterReducerState<SerializedRouterStateSnapshot>
Run Code Online (Sandbox Code Playgroud)
如何禁用此警告?老实说,我觉得这很烦人。
以下是对我的帮助:不要createFeatureSelector用于创建路由器功能选择器,createSelector而是使用。
export const routerState = createSelector((state: State) => state.router, value => value)
Run Code Online (Sandbox Code Playgroud)
发生此问题是因为如果特征值等于 ,则会createFeatureSelector 记录警告undefined。上面的代码等同于原始实现,但没有日志。
| 归档时间: |
|
| 查看次数: |
6799 次 |
| 最近记录: |