1
我在React,React Native和React Navigation方面相當新穎。取得一些進展,但遇到這個問題。如何使用React Navigation導航到渲染函數之外的新屏幕,而不使用JSX?
<Button
text='View Details' onPress={() =>
this.props.navigation.navigate('AccountScreen')} />
不過,我目前正試圖導航到一個新的屏幕在.fetch()
,並且想知道什麼我需要做的:
一般情況下我做這樣的事情導航到新頁面不同。
見下面的代碼:
// AppNavigation.js:
...
const PrimaryNav = StackNavigator({
HomeScreen: { screen: HomeScreen },
AccountScreen: { screen: AccountScreen }
});
// HomeScreen.js
...
handlePress = (navigator) => {
fetch('https://example.com/this/url/works' + this.state.accountName, lookUpObject).then(function(response) {
if(response.ok) {
// this does not work.
// returns this error:
// "undefined is not an object (evaluating 'navigator.navigate')"
navigator.navigate('AccountScreen', { "accountName": this.state.accountName });
}
})
}
render() {
const { navigate } = this.props.navigation;
reutrn (
<ButtonCTA onPress={this.handlePress}>Go to account page</ButtonCTA>
)
}
現在我得到以下錯誤: "undefined is not an object (evaluating 'navigator.navigate')"
Hrm ...良好的捕獲,但我仍然得到相同的錯誤: 'E ReactNativeJS :{[TypeError:undefined不是一個對象(評估'navigator.navigate')]''。任何其他想法? – chapeljuice
你也應該改變函數 'fetch('https://example.com/this/url/works'+ this.state.accountName,lookUpObject).then(function(response){' 使用箭頭語法 – BTMPL
好吧我其實有一些事情需要改變,但我會將其標記爲答案,因爲它基本上讓我在那裏。我的StackNavigator中有一個拼寫錯誤(呃)和我通過'導航'而不是'導航器。希望這可以幫助別人! – chapeljuice