2017-09-17 37 views
0

我正在嘗試導航beteween屏幕,但我不知道如何導航後的第一個屏幕。這個問題也是關於類的導航,因爲所有的例子只顯示常量內的道具。在註冊表中第二次導航

文件:index.android.js

const AppNative = props => { 
return <AppScreen navigation={props.navigation} />; 
}; 
const MyApp = DrawerNavigator({ 
    Home: { screen: AppNative }, 
    Register: { screen: Register }, 
}); 
AppRegistry.registerComponent("AppNative",() => MyApp); 

文件:App.js

const AppScreen = props => { 
    const { navigate } = props.navigation; 
    return (
    <View> 
     <Button 
     navigation={props.navigation} 
     onPress={() => navigate("Register")} 
     title="Cadastrar com email" 
     /> 
    </View> 
); 
}; 
export default AppScreen; 

文件:Register.js當我在點擊鏈接

class Register extends Component { 
    constructor(props) { 
    super(props); 
    } 
    render() { 
    const { navigate } = this.props.navigation; 
    //?????? 
    const RegisterNav = DrawerNavigator({ 
     Register: { screen: Register }, 
     OtherScreen: { screen: OtherScreen }, 
    }); 
    return (
     <View> 
      //?????? 
      <Button onPress={() => navigate("OtherScreen")}> 
      Entrar 
      </Button> 
     </View> 
     ); 
    } 
} 
export default Register; 

什麼也沒有發生文件Register.js

個相關性(的package.json):

"dependencies": { 
    "apsl-react-native-button": "^3.1.0", 
    "react": "16.0.0-alpha.12", 
    "react-native": "^0.48.2", 
    "react-native-maps": "^0.16.2", 
    "react-navigation": "^1.0.0-beta.11" 
}, 
+0

需要我聲明我的所有屏幕js上有我的註冊表? – bpedroso

回答

1

您正在試圖內RegisterNav導航,但是導航方法屬於你MyApp導航儀。

如果你在同一個導航器中聲明所有的屏幕,它應該可以工作。

const MyApp = DrawerNavigator({ 
    Home: { screen: AppNative }, 
    Register: { screen: Register }, 
    OtherScreen: { screen: OtherScreen }, 
}); 
+0

我應該只有所有應用程序的導航器? – bpedroso

+0

不一定,你也可以嵌套導航器(https://reactnavigation.org/docs/intro/nesting),如果你想從導航器外部導航不要忘記傳遞'導航'道具'' – Freez

+0

不確定它是否適用於抽屜導航器,文檔僅包含關於包含TabNavigator的StackNavigator – Freez