angular - NgRx 的“类型”问题不能分配给“状态”类型
问题描述
我的“类型”有问题,会出现以下错误。我尝试更改类型,但仍然没有用。
我有一个初始状态,它具有三种不同的类型。
todo.reducer 属于 Todo 组件,我已经为整个应用程序声明了一个 Main reducer。
错误:
输入'{错误:字符串;项目:待办事项列表[];加载:布尔值;}' 不可分配给类型 'State'。属性“错误”的类型不兼容。类型“字符串”不可分配给类型“错误”。
**todo.reducer.ts:**
export interface State{
items:TodoList[],
loading:boolean,
error:Error
}
const initialState:State={
items:[
new TodoList(1,'cook'),
new TodoList(2,'work')
],
loading:false,
error:undefined
}
export function TodoItem(state=initialState,action:TodoActions.TodoActions){
switch(action.type){
case TodoActions.ADD_ITEM:
return {
...state,
loading:true
}
case TodoActions.DELETE_ITEM:
return {
...state,
loading:true
}
case TodoActions.LOADING_LIST:
return{
...state,
loading:true
}
case TodoActions.LOADING_LIST_SUCCESS:
return{
...state,
loading:false
}
case TodoActions.LOADING_LIST_FAIL:
return {
...state,
loading:false
}
case TodoActions.ADD_ITEM_SUCCESS:
return{
...state,
items:[...state.items,action.payload],
loading:false
}
case TodoActions.ADD_ITEM_FAILURE:
return{
...state,
error:action.payload
}
case TodoActions.DELETE_ITEM_SUCCESS:
return{
...state,
items:state.items.filter((items)=>{
return items.id!==action.payload
}),
loading:false
}
case TodoActions.DELETE_ITEM_FAILURE:
return{
...state,
error:action.payload,
loading:false
}
default:
return state;
}
**app.reducer.ts:**
export interface AppState{
list:fromTodoReducer.State
}
export const appReducer:ActionReducerMap<AppState>={
list:fromTodoReducer.TodoItem
}
解决方案
推荐阅读
- php - xampp windows 和 OLD oracle 8 连接
- c# - SqlException:将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围
- java - 在单选按钮中添加单选按钮,如父子菜单和食物
- jira - 没有可用的命名空间。您必须拥有所有者或维护者权限才能链接命名空间
- python - 尝试将 BeautifulSoup 输出分配给变量以从中获取文本
- sql - 尝试删除 SQL Server 中的重复行,其中差异是日期或批号
- java - VSCode 中的 Java VMOptions
- java - 有什么方法可以从类路径依赖 jar 中的 pom.xml 获取 maven 项目版本
- python - 如何在不同文件中使用基于 tkinter 类的帧刷新 tkinter 帧
- r - 带有aes填充的ggplot2 geom_point仅显示黑色