javascript - Ugnježđivanje navigatora s React Navigatorima - 'Home' bi trebao deklarirati ekran
Trenutno radim s React Native i novim React Navigation. Tamo pokušavam pratiti vodič za ugnježđivanje navigatora, ali uvijek se pojavljuje greška:
Route 'Home' should declare a screen. For example:
import MyScreen from './MyScreen';
...
Home: {
screen: MyScreen,
}
Nisam siguran što radim pogrešno. Kada pokrenem navigatore pojedinačno, rade. Ali nažalost ne rade zajedno.
Ovo je App.js, koji sam kreirao koristeći vodič:
import React from 'react';
import {
AppRegistry,
Text,
View,
Button
} from 'react-native';
import {
StackNavigator,
TabNavigator
} from 'react-navigation';
class HomeScreen extends React.Component {
static navigationOptions = {
title: 'Welcome',
};
render() {
const { navigate } = this.props.navigation;
return <View>
<Text>Hello!</Text>
<Button
onPress={() => this.props.navigation.navigate('Chat', { user: 'Daniel' })}
title="ReactNavigation Test"
/>
</View>;
}
}
class ChatScreen extends React.Component {
static navigationOptions = {
title: 'ReactNavigation Test',
};
render() {
const { params } = this.props.navigation.state;
return (
<View>
<Text>Neue Seite für den Navigator. Hallo {params.user}!</Text>
</View>
);
}
}
class RecentChatsScreen extends React.Component {
render() {
return <Text>List of recent chats</Text>
}
}
class AllContactsScreen extends React.Component {
render() {
return <Text>List of all contacts</Text>
}
}
const ReactNativeTest = StackNavigator({
Home: { screen: MainScreenNavigator },
Chat: { screen: ChatScreen },
});
const MainScreenNavigator = TabNavigator({
Recent: { screen: RecentChatsScreen },
All: { screen: AllContactsScreen },
});
AppRegistry.registerComponent('ReactNativeTest', () => ReactNativeTest);
Možda mi tamo možeš pomoći. Postavio sam isto pitanje ovdje, ali možda je ovo bolje mjesto za to pitanje.
Unaprijed hvala!
Odgovor #1
I ja sam ovu pogrešku napravio kad sam tek počinjao...
Stavite MainScreenNavigator iznad ReactNativeTest.
Kako ga trenutno imate, MainScreenNavigator ne postoji kada se poziva.
const MainScreenNavigator = TabNavigator({
Recent: { screen: RecentChatsScreen },
All: { screen: AllContactsScreen },
});
const ReactNativeTest = StackNavigator({
Home: { screen: MainScreenNavigator },
Chat: { screen: ChatScreen },
});
