Ich habe 2 Klassen: meine Standardklasse Homescreen für die Homepage verwendet und eine andere Klasse MyList, die ich verwende, um einen flatlist auf meinem Homescreen zu erzeugen. Mein Problem ist, dass es mir nicht gelingt, meine Navigationsfunktion in meiner MyList Klasse aufzubauen.Reagieren Nativ/Reagieren Navigation, gleiches Niveau Komponente
Ich bekomme immer den folgenden Fehler: "Kann Variable nicht finden: navigieren".
Ich habe mir diese Calling Navigate on Top Level Component angesehen, aber ich weiß wirklich nicht, wie ich es in meinem Code implementieren soll.
Hier ist, was ich versucht habe:
class MyList extends React.Component {
_keyExtractor = (item, index) => item.note.id;
_renderItem = ({ item }) => (
<TouchableNativeFeedback
onPress={() => navigate('Note', { noteId: item.note.id })} >
<View>
<Text style={styles.noteElementTitle} >{item.note.title}</Text>
<Text style={styles.noteElementBody} >{item.note.body}</Text>
</View>
</TouchableNativeFeedback>
);
render() {
return (
<FlatList
data={this.props.data}
keyExtractor={this._keyExtractor}
renderItem={this._renderItem}
/>
);
}
}
export default class HomeScreen extends React.Component {
static navigationOptions = {
title: 'Notes',
headerStyle: { backgroundColor: 'rgb(255, 187, 0)' },
headerTitleStyle: { color: 'white' },
};
render() {
const { navigate } = this.props.navigation;
return (
<MyList
data={this.state.data}
load={this.state.load}
navig={this.props.navigation}
>
</MyList>
);
}
}
const Project = StackNavigator({
Home: { screen: HomeScreen },
NewNote: { screen: NewNoteScreen },
Note: { screen: NoteScreen }
});
AppRegistry.registerComponent('Project',() => Project);
Vielen Dank für Ihre Hilfe.
Danke für deine Antwort. Wenn ich mit Option 1 gehe, was soll ich in meiner Flatlist hinzufügen, um die Navigationsstütze zu holen? – Audeo
Sie müssen nichts anderes machen. Es wird wie die normale Navigationsstütze verfügbar sein. Um zu navigieren, können Sie wieder 'const {navigate} = this.props.navigation;' – bennygenel
Es funktioniert, wenn ich nicht meine _renderItem Funktion, sondern schreibe direkt meine Render-Funktion im Flatlist-Block. Vielen Dank Bennygenel! – Audeo