2017-10-18 70 views
0

您好,我是新來的本土和嘗試學習一些東西。我試圖通過點擊一個按鈕上的用戶名到子視圖。這是我對按鈕的代碼在視圖中單擊一個反應原生傳遞參數到其他組件

this.props.navigation.navigate('GetRegisteredScreen', {}, { 
    type: ' Navigate', 
    routeName: 'GetRegisteredScreen', 
    params: {username: 'Robert'} 
}) 

視圖B

componentDidMount(){ 
    alert(this.props.navigation.state.params.username) 
} 

獲得以下錯誤

未定義在params.username

我是什麼做錯了?

可有一個人請幫助,在此先感謝

編輯:這裏是什麼,我得到了this.props.navigation

enter image description here

+0

您能得到什麼,如果你犯了一個'的console.log(this.props.navigation)'? –

+0

我測試了你的代碼,它工作正常。但我已經改變了'導航'而不是'導航'。沒有空間。 –

+0

當我嘗試打印出console.log(this.props.navigation.state.params.username)時,仍然收到'undefined'。 – dogwasstar

回答

0

我猜你的導航儀,從PARAMS注入的屬性到下一個組件的道具,所以只是使用

this.props.username 
+0

我已檢查,但它仍然無法正常工作。你能告訴我一個示例代碼嗎? – dogwasstar

0

你有一個語法錯誤。你傳錯了。它應該如下所示。

this.props.navigation.navigate({ 
    routeName: 'GetRegisteredScreen', 
    username: 'Robert' 
}); 
// OR 
this.props.navigation.navigate('GetRegisteredScreen', { 
    username: 'Robert' 
});  

您使用的語法是dispatching navigate action

const navigateAction = NavigationActions.navigate({ 
    routeName: 'Profile', 
    params: {}, 
    action: NavigationActions.navigate({ routeName: 'SubProfileRoute'}) 
}) 

this.props.navigation.dispatch(navigateAction)