2 回答
![?](http://img1.sycdn.imooc.com/5458472300015f4702200220-100-100.jpg)
TA贡献1836条经验 获得超13个赞
代码中有两处错误,第一件事是App.js您正在创建一个AppContainerusing createAppContainer,它将导航道具向下传递到您拥有的所有屏幕,并且还负责切换活动屏幕,因此LoginScreen您应该返回AppNavigator.
应用程序.js
export default class MMH_App_Final extends Component{
render() {
const App = createAppContainer(MainNavigator);
return(
<App />
);
}
}
现在您应该能够访问屏幕中的导航道具,但是由于您也有导航道具LoginForm内部LoginScreen不会从LoginScreento传递,LoginForm因此您必须手动将其传递给像这样:
<LoginForm navigation={this.props.navigation}/>
或者
你可以使用一个方便的 HOCreact-navigation调用withNavigationthis 将导航道具传递给任何组件。
import { withNavigation } from 'react-navigation';
class LoginForm extends Component {
render() {
return (/*Components*/);
}
}
export default withNavigation(LoginForm);
![?](http://img1.sycdn.imooc.com/545861f00001be3402200220-100-100.jpg)
TA贡献1817条经验 获得超14个赞
呈现应用程序。实际上容器负责管理您的应用程序状态并将您的顶级导航器链接到应用程序环境。
import React, { Component } from 'react';
import { AppRegistry, StyleSheet, Text, View } from 'react-native';
import Splash from './Splash';
import Login from './src/components/Login/Login';
import {createAppContainer} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';
const MainNavigator = createStackNavigator({
Home: {screen: Login},
Dash: {screen: Splash}
});
export default class MMH_App_Final extends Component{
render() {
const App = createAppContainer(MainNavigator);
return(
<App/>
);
}
}
添加回答
举报