我目前正在开发一个应用程序,该应用程序与react本机协同工作,我试图使用react-navigation开发这教程,但我在运行项目时遇到了困难,我做了很多研究,我只是无法找到解决方案,首先,我使用的是react原生-cli: 2.0.1和react原生: 0.48.3,这是我的代码:
App.js:
import React, { Component } from 'react';
import { Text, Button, View } from 'react-native';
import {
StackNavigator,
} from 'react-navigation';
class App extends Component {
static navigationOptions = {
title: 'Welcome',
};
render() {
console.log(this.props.navigation);
const { navigate } = this.props.navigation;
return (
<View>
<Text>Go to maps!</Text>
<Button
onPress={() => navigate('Map')}
title="MAP"
/>
</View>
);
}
}
export default App;
我的Router.js
import {
StackNavigator,
} from 'react-navigation';
import MapMarker from './MapMarker';
import App from './App';
export const UserStack = StackNavigator({
ScreenMap:
{
screen: MapMarker,
navigationOptions:
{
title: "Map",
header:null
},
},
ScreenHome:
{
screen: App,
navigationOptions:
{
title: "Home",
headerLeft:null
},
},
});
正如您可以看到的,这是一个非常基本的应用程序,我只是无法工作,这是一个屏幕截图,我的错误在模拟器:
如果你们能帮我做这件事,我会非常感激的。谢谢。
发布于 2017-09-22 08:37:27
您应该将代码onPress={() => navigate('Map')}
更改为onPress={() => navigate('ScreenMap')}
,ScreenHome
应该是第一个屏幕,然后是ScreenMap
,因为您希望从App
导航到MapMarker
。也可以在堆栈导航器中设置initialRouteName: ScreenHome
。
发布于 2017-09-23 20:04:33
您创建了您的StackNavigator,但是在哪里使用它呢?你应该有这样的
import React, { Component } from 'react';
import {
AppRegistry,
View
} from 'react-native';
import {
StackNavigator,
} from 'react-navigation';
export default class MyApp extends Component {
render() {
return (
<View style={{flex:1}}>
<StackNavigator/>
</View>
);
}
}
AppRegistry.registerComponent('MyApp', () => MyApp);
现在您的StackNavigator正在控制显示的内容,您的App将在其支持程序中进行导航。注意,您不能“传递”导航支柱。这是给你处理的。
https://stackoverflow.com/questions/46353089
复制相似问题