0

我正在使用CRNA v0.44。我正在進行兩個屏幕註冊。我在第一個屏幕上,現在我想要使用react-navigation進入第二個屏幕。未定義不是對象(評估'this.props.navigation.navigate')(常見問題)(CRNA)

但得到錯誤:

undefined is not an object (evaluating 'this.props.navigation.navigate')

我已經探索互聯網和發現需要道具傳遞給按鈕,但沒能搞清楚如何?

SignupForm.js:

import { 
    StackNavigator, 
} from 'react-navigation' 
import SignupForm2 from './SignupForm2' 
const App = StackNavigator({ 
    SignupForm2: { screen: SignupForm2 }, 
}); 
export default class SignupForm extends Component { 

render() { 
const { navigate } = this.props.navigation 
return (
<Button 
     title="Go to Jane's profile" 
     onPress={() => 
      navigate('SignupForm2', { name: 'SignupForm2' }) 
     } 
     /> 
) 
    } 
} 
+0

您是否將navigation prop傳遞到組件? –

回答

0

我想第一個SignupForm必須是導航的一部分爲好,然後告訴導航的初始畫面SignupForm

+0

也嘗試過......你可以通過遠程訪問來檢查它嗎? –

1

我想你的AppRegistry.registerComponent中的SignupForm渲染,而是嘗試下面的代碼。您還需要在StackNavigator中包含SignupForm,並在AppRegistry.registerComponent中呈現變量App。

import { 
StackNavigator, 
} from 'react-navigation' 

import SignupForm2 from './SignupForm2' 

const App = StackNavigator({ 
    SignupForm: { screen: SignupForm } 
    SignupForm2: { screen: SignupForm2 }, 
}); 

export default class SignupForm extends Component { 

render() { 
const { navigate } = this.props.navigation 
    return (
    <Button 
     title="Go to Jane's profile" 
     onPress={() => 
     navigate('SignupForm2', { name: 'SignupForm2' }) 
     } 
    /> 
) 
} 
} 

AppRegistry.registerComponent('yourApp',() => App); 
相關問題