2017-10-21 80 views
1

陣營導航的introduction page建議使用以下解構賦值的:陣營導航「導航」中的道具驗證缺少

const { navigate } = this.props.navigation; 

然而,當我實現我的應用程序陣營導航,ESLint抱怨這條線描述這些既錯誤:

「導航」在道具驗證缺失(反應/丙類型)

「navigation.navigation」在缺少道具驗證(反應/道具類型)

即使應用程序似乎按預期工作,如何才能刪除這些錯誤行?

回答

1

一個選項是將propTypes prop添加到組件。

LoginScreen.propTypes = { 
    navigation: PropTypes.object.isRequired, 
}; 

另一種選擇是禁用eslint該頁面和規則。更多信息here

規則選項

這個規則可以採取一個參數期間 驗證忽略某些特定的道具。

... 
"react/prop-types": [<enabled>, { ignore: <ignore>, customValidators: <customValidator> }] 
... 
+0

最新版本現在抱怨的對象類型: 'Eslint:支柱型 '對象' 是被禁止的反應/禁止 - 丙types' – mcabe

1

解決方案今日(因爲對象Proptype默認情況下不接受的了):

export default class LoginScreen extends Component { 
    static propTypes = { 
    navigation: PropTypes.shape({ 
     navigate: PropTypes.func.isRequired, 
    }).isRequired, 
    } 
}