Проверка типа реакции с использованием сбоя потока для this.props.history.push - PullRequest
2 голосов
/ 27 мая 2020

Я провожу проверку типов с помощью потока в React. Я получаю сообщение об ошибке для сценария ниже, как обработать this.props.history.pu sh ('/ home') Как я могу определить его в реквизитах? Я пробовал, как показано ниже, но не работает,

type Prop = { onLoginSuccess: function, setContextDetails: function, callErrorLogger: function, history:string, push:string }; 
type State = { username: string, password: string, loginsuccess: bool, isLoading: bool }; 
class Login extends React.Component<Prop, State> {
// here I have some code
this.props.history.push('/home') ;
 } 

1 Ответ

0 голосов
/ 05 июня 2020

Я очистил часть вашего кода и типов, чтобы они были более точными в отношении синтаксиса потока. Но это должно сработать.

Вы в основном определяете свой тип history так же, как и обычный объект, а ваша push функция может быть объявлена ​​либо с помощью Function, либо более строгим, используя стрелочную функцию синтаксис, который я использовал ниже.

type Prop = {
  onLoginSuccess: Function,
  setContextDetails: Function,
  callErrorLogger: Function,
  history: {
    push: (string) => void,
  },
};

type State = {
  username: string,
  password: string,
  loginsuccess: boolean,
  isLoading: boolean,
};

class Login extends React.Component<Prop, State> {
  // here I have some code
  onClick() {
    this.props.history.push('/home');
  }
} 

Здесь вы можете увидеть, как вводятся данные в действии. https://flow.org/try/#0JYWwDg9gTgLgBAKjgQwM5wEoFNkGN4BmUEIcA5FDvmQNwBQdMAnmFnAArFhwC8cA3nThwIAOwAyEAObBRAZQCuuXFlSoAXHABiC0fmBiANELiosMAMJiYWAB4wAIueTAANhu279Rk7mSvXAFEoYihJKSksKE0dPRgDUWNhAAtgVBhoJk1BYWEwBVRkzQAKdKhZKQBKXgA + OAA3CGAAEyS4AF9jdvpGFjY5GGQbXgETAqjRZBAsTTKKtrA0VAB3aGbZmHLRKTbXaVlUJRU1TQAjCAhXHESTNMlkZoqzi6vkG + 6hOlxXJbhw2Tgdhsoma6GweBgADorOAxFhRDAADycCBgQxwAZDLB1HJwAD0eLgySibAAkkTkPU2KgSGxcBBmlgTGILK5gLgANbFaq44QwVKoSFgLiCgUZKBMIUFZLFMh45K0siVejCdp0dpwIA

1013 * Я также рекомендую в будущем вы отметите свой пост до flowtype, который должен получить ваш больше помощи.
...