javascript - TypeScript 中的 CombineReducers
问题描述
export const rootReducer = combineReducers({
login: loginReducer,
});
这很好,但是一旦我尝试组合另一个减速器,
export const rootReducer = combineReducers({
login: loginReducer,
logout: logoutReducer
});
我开始在 rootReducer 上收到错误消息
'rootReducer' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
我怎么能修改这个?
这就是我的 logoutReducer 的样子:
import {store} from '../index'
export const logoutReducer = (state = store.getState(), { type, payload } :any) => {
switch (type) {
case "logout":
return {...state, token: payload};
default:
return state;
}
};
解决方案
您是否尝试过将类型分配给底层减速器?
例如:
import {Action, Reducer} from 'redux';
interface LoginState {
isLoggedIn: boolean;
token: string;
}
interface LogoutState {
token:string;
}
export const logOutReducer: Reducer<LogoutState> = (state: LogoutState | undefined, incomingAction: Action): LogoutState=> {
switch (incomingAction.type) {
case "logout":
return {...state, token: payload};
default:
return state;
}
}
//... export const logInReducer: Reducer<LoginState>...
推荐阅读
- python - pandas.to_datetime() 自动转换为
我有一个数据框,它被读取为包含格式为“YYYY-MM-DD”的日期的字符串。我已经使用 pd.to_datetime(带强制)将该列转换为日期时间,并且我打算使用 numpy.isnat() 在该列中搜索 NaT。
defaultDate = datetime.d
- sql - 如何通过检查同一表中另一条记录中的值来更新记录
- cmake - 我们如何使用 X-JFrog-Art-Api 下载 JFrog Artifacts?
- google-maps - 如何在 Shopify Atlantic 主题中将 Iframe 地图大小更改为全屏
- android - 如何通过按下它来更改按钮ID?
- spring - Spring Boot 2 执行器千分尺设置
- numpy - 如何从 IPython 打开在线参考?
- c++ - 如何使用 cout 在类中显示类中的值?
- javascript - 比较对象数组并分配相似度分数
- reactjs - 无法让 Material UI 单选按钮与 Formik 第二部分一起使用