web-dev-qa-db-fra.com

Comment passer la vérification eslint pour this.props.navigation.navigate (react-navigation)?

J'utilise eslint airbnb dans mon projet natif React. L'erreur de jet eslint peluche si je n'ai pas validé les accessoires, en particulier les accessoires de react-navigation.

props validation 1 Comment puis-je valider cela à l'aide de PropTypes?

J'essaye de le valider comme ceci:

IntroScreen.propTypes = {
  navigation: PropTypes.shape({
    navigate: PropTypes.func,
  }),
};

mais j'ai quand même des erreurs qui se pelotonnent comme ceci error lint 2

Comment passer les accessoires par défaut et dois-je le faire?

17
Dede Hamzah

Je le corrige en définissant les accessoires de navigation et de navigation requis.

IntroScreen.propTypes = {
  navigation: PropTypes.shape({
    navigate: PropTypes.func.isRequired,
  }).isRequired,
};

eslint nous oblige à fournir des accessoires par défaut à définir si nous définissons les accessoires comme facultatifs. Donc, si nous définissons les accessoires comme requis, l'eslint ne vous avertira plus.

22
Dede Hamzah

En plus du réponse de Dede il peut arriver que votre projet ajoute la navigation à (essentiellement) tous vos composants. L'ajout de la validation des accessoires pour la navigation est une tâche inutile et vous pourriez aussi bien faire taire les peluches pour cet accessoire spécifique.

Pour ce faire, ajoutez les éléments suivants dans votre configuration eslint:

"rules": {
     "react/prop-types": ["error", { "ignore": ["navigation"] }]
}

Gardez à l'esprit que vous devrez vous assurer que la navigation est bien ajoutée à vos composants avant de l'utiliser.

17
MikaelHalen