記錄一下學習ReactNative爬過的坑——StackNavigator
阿新 • • 發佈:2019-01-31
剛開始學習ReactNative,沒有JS基礎,慢慢爬坑吧。
主要說StackNavigator碰到的兩個問題:
(1)route should declare a screen
const Navi = StackNavigator({
Login: {screen: Login},
Skill: {screen: Skill}
},{
initialRouteName: 'Login'
});
Login: {screen: Login},
這一行會報錯,網上查了很多資料,說是export import的原因,但是試了,發現不是那回事。然後還有說是Login還沒有定義就被呼叫了,需要swap一下Navi和Login的順序,感覺有道理,但是不知道該怎麼做,於是只好把Navi和Login放在一個JS裡面:
//上面是Login的介面程式碼,就不貼了
const Navi = StackNavigator({
Login: {screen: Login},
Skill: {screen: Skill}
},{
initialRouteName: 'Login'
});
AppRegistry.registerComponent('Stormorai', () =>Navi);
So,坑一被填上了。
(2)Route ‘XXX’undefined is not an object
報錯的程式碼:
const {navigate} =this.props.navigation;
對於這個問題,試過的方法有constructor,super這類都沒有用,這個問題糾結的時間最長,附上解決方法:
const Login= ({navigation}) =>(
//View的介面顯示程式碼這裡就省略了,只貼上Button跳轉的程式碼
<Button title="登入" color="blue" onPress={() => navigation.navigate('Skill')}/>
);
終於,這個坑也填上了,終於用上了最流弊的‘react-navigation’的StackNavigator,頁面也可以正常跳轉了。看到很多文件class login,之前就是這樣糾結了很久,不知道大神們是怎麼實現的,如果知道麻煩順便告訴我一下。