Я разрабатываю новое приложение и обнаружил ошибку.Когда я пытаюсь отправить действие, я получаю сообщение об ошибке, подобное этому:
Аргумент типа '(dispatch: Dispatch) => Promise' не может быть назначен параметру типа 'T'.Свойство 'type' отсутствует в типе '(dispatch: Dispatch) => Promise', но требуется для типа 'X'.
Кто-нибудь сталкивался с этой проблемой или может мне помочь?Я использую пакеты:
- "реагировать": "^ 16.7.0",
- "реагировать-дом": "^ 16.7.0",
- "response-redux": "^ 6.0.0",
- "Reaction-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());
}
};