React hook UseContext не возвращает правильное значение (согласно машинописи) - PullRequest
0 голосов
/ 28 марта 2019

У меня есть следующий код, который получает метод dispatch:

const mapDispatchToProps = (dispatch: React.Dispatch<AppAction>) => ({

});

Я использую useContext вот так;

    const appContext = useContext(AppContext);
    const [state, dispatch] = appContext;

При запуске mapDispatchToProps(dispatch); однако я получаю следующую ошибку:

Error:(28, 24) TS2345: Argument of type '[AppState, Dispatch<AppAction>]' is not assignable to parameter of type 'Dispatch<AppAction>'. Type '[AppState, Dispatch<AppAction>]' provides no match for the signature '(value: AppAction): void'.

Он думает, что dispatch все еще массив ... Что происходит?

1 Ответ

0 голосов
/ 28 марта 2019

Оказывается, вы должны объявить тип для своего контекста следующим образом:

export const AppContext = React.createContext<[AppState, Dispatch<AppAction>] | null>(null);

Вместо export const AppContext = React.createContext<Array<[AppState, Dispatch<AppAction>]> | null>(null);

...