我如何通过eslint检查this.props.navigation.navigate(react-navigation)?

时间:2017-10-05 06:09:23

标签: eslint react-navigation react-proptypes

我在我的反应原生项目中使用eslint airbnb。如果我没有验证道具,特别是来自react-navigation的道具,那么就会发现错误掉线错误。

props validation 1 我如何使用PropTypes验证这一点?

我试图像这样验证它:

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

但仍然有这样的错误 error lint 2

我如何传递默认道具,我应该吗?

2 个答案:

答案 0 :(得分:15)

我正在通过设置导航和导航道具来修复它。

IntroScreen.propTypes = {
  navigation: PropTypes.shape({
    navigate: PropTypes.func.isRequired,
  }).isRequired,
};
如果我们将道具设置为可选的,

eslint强制我们提供要设置的默认道具。因此,如果我们将道具设置为必需,则夹板不会再次警告您。

答案 1 :(得分:15)

除了answer by Dede之外,您的项目可能会在(基本上)所有组件中添加导航。为导航添加道具验证是一项不必要的任务,然后您可能会为特定道具沉默。

您可以通过在eslint配置中添加以下内容来完成此操作:

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

请注意,在使用之前,您需要确保导航实际上已添加到您的组件中。