我有疑问。我写了一个Flow类型检查器来检查我的reducer。您可以向我解释一个错误是什么原因造成的。这是我的代码。
// @flow
import {SET_USER} from "./action-types";
import type {SetUserAction} from "./user-actions"; // export type SetUserAction = (user: User) => Action;
export type State = {
+username: ?string,
+firstName: ?string,
+lastName: ?string,
+email: ?string,
avatar?: ?string,
}
export type Action = SetUserAction;
const initialState: State = {
username: null,
firstName: null,
lastName: null,
email: null,
avatar: null,
};
type Reducer = (state: State, action: Action) => State;
const userReducer:Reducer = (state = initialState, action) => {
switch (action.type) {
case SET_USER:
return {...action.payload};
default:
// (action: empty);
return state;
}
};
export {userReducer};
这是错误。
错误--------------------------------------------- -------------------------------- src / redux / User / user-actions.js:25:48无法将功能分配给setUser
,因为缺少说明预期参数/返回类型的调用签名在对象文字[1]中,但在返回值中的SetUserAction
[2]中存在。src / redux / User / user-actions.js:25:4825 | export const setUser:SetUserAction = user =>({类型:SET_USER,有效载荷:用户});^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [1]参考文献:src / redux / User / user-actions.js:24:4524 |导出类型SetUserAction =(用户:User)=>操作;^^^^^^ [2]错误------------------------------------------------- ---------------------------- src / redux / User / user-reducer.js:26:20无法获得action.type
,因为函数类型[1]的静态属性中缺少属性type
。src / redux / User / user-reducer.js:26:2026 |开关(action.type){^^^^参考文献:src / redux / User / user-reducer.js:23:3923 |类型Reducer =(状态:状态,操作:操作)=>状态;^^^^^^ [1]错误------------------------------------------------- ---------------------------- src / redux / User / user-reducer.js:26:13函数类型[1]的静态变量中缺少属性type
。src / redux / User / user-reducer.js:26:1326 |开关(action.type){^^^^^^^^^^^^参考文献:src / redux / User / user-reducer.js:23:3923 |类型Reducer =(状态:状态,操作:操作)=>状态;^^^^^^ [1]错误------------------------------------------------- ---------------------------- src / redux / User / user-reducer.js:28:31无法获得action.payload
,因为函数类型[1]的静态属性中缺少属性payload
。src / redux / User / user-reducer.js:28:3128 |返回{... action.payload};^^^^^^^^参考文献:src / redux / User / user-reducer.js:23:3923 |类型Reducer =(状态:状态,操作:操作)=>状态;^^^^^^ [1]