【发布时间】:2019-02-05 23:34:25
【问题描述】:
我正在开发新的应用程序,但遇到了错误。当我尝试调度操作时,我收到了这样的错误:
'(dispatch: Dispatch) => Promise' 类型的参数不能分配给'T' 类型的参数。 类型 '(dispatch: Dispatch) => Promise' 中缺少属性 'type',但类型 'X' 中是必需的。
有没有人遇到过这个问题或者可以帮助我? 我正在使用包:
- “反应”:“^16.7.0”,
- "react-dom": "^16.7.0",
- “react-redux”:“^6.0.0”,
- "react-router-dom": "^4.3.1",
- “redux”:“^4.0.1”,
- “redux-thunk”:“^2.3.0”,
- “打字稿”:“^3.3.1”
这是我的代码:
Container:
import { connect } from 'react-redux';
import { Dispatch } from 'react';
import { loginUser, Actions } from './actions';
import Screen, { Props } from './Screen';
const mapDispatchToProps = (dispatch: Dispatch<Actions >): Props => ({
login: (userName: string, password: string) => {
dispatch(loginUser(userName, password)); }
});
export const ScreenContainer = connect(mapDispatchToProps)(Screen);
Props:
export interface Props {
login: (userName: string, password: string) => void;
}
Actions:
import { Dispatch } from 'redux';
export type Actions =
LoginRequest
| LoginSuccess
| LoginFailure;
export const loginRequest = (): LoginRequest => ({
type: types.LOGIN_REQUEST,
});
export const loginFailure = (): LoginFailure => ({
type: types.LOGIN_REQUEST_FAILED,
});
export const loginSuccess = (): LoginSuccess=> ({
type: types.LOGIN_REQUEST_SUCCESS,
});
export interface LoginRequest {
type: types.LOGIN_REQUEST;
}
export interface LoginFailure {
type: types.LOGIN_REQUEST_FAILED;
}
export interface LoginSuccess{
type: types.LOGIN_REQUEST_SUCCESS;
}
export const loginUser = (email: string, password: string) => async
(dispatch: Dispatch<Actions>) => {
dispatch(loginRequest());
try {
dispatch(loginSuccess());
} catch (error) {
dispatch(loginFailure());
}
};
【问题讨论】:
标签: reactjs typescript react-redux frontend web-frontend