Ich erstelle eine APP, die einige Daten von Abruffunktion erhalten. Kein Problem hier. Das Array enthält die Daten korrekt. Ich mache es so:React Native - wie Kartenfunktion für ein Objekt zu verwenden
constructor(){
super()
this.state = {
fetching: false,
api: []
}
}
componentWillMount(){
this.setState({ fetching: true })
api.getMonuments().then(res => {
this.setState({
api: res,
fetching: false
})
})
}
I got this data: an array of 4 objects
Dann möchte ich, dass die Daten auf eine andere Szene zu übergeben. Ich bin es, wie dies zu tun:
<View style={styles.contentContainer}>
<TouchableHighlight
style={[styles.button, {marginBottom:0}]}
onPress={() => navigate('Monumento', this.state.api)}
underlayColor='#000'
>
<View style={styles.buttonContent}>
<Animatable.Text
style={styles.buttonText}
animation="bounceInLeft"
duration={1500}
>
Click here!
</Animatable.Text>
</View>
</TouchableHighlight>
</View>
Auf der anderen Szene bekomme ich, dass die Daten mit dem navigation.state.params aber das Problem ist jetzt, dass es nicht mehr ist ein Array mit 4 Objekten in ihm, aber statt es ist ein Objekt, das 4 Objekte in ihm haben ... wenn ich die Daten Konsolprotokoll that is what's appears
render(){
const api = this.props.navigation.state.params;
console.log('API:', api)
...
Jetzt möchte ich die map-Funktion verwenden, aber ich kann nicht, weil ‚api‘ ist keine Funktion .. Wie kann ich das umgehen?
Ich denke, Sie Navigation reagieren verwenden. Wenn dies der Fall ist, sollte Ihr Aufruf zur Navigationsfunktion folgendermaßen lauten: navigate ('Monumento', {api: this.state.api}). Und Sie können es wie folgt abrufen: this.props.navigation.state.params.api. Navigieren Funktion nimmt Bildschirmnamen und Parameter-Objekt. Lesen Sie dies: https://reactnavigation.org/docs/navigators/navigation-prop#navigate-Link-to-other-screens –
Es funktioniert !! Danke, Mann!! Du sparst meinen Tag! – Proz1g
Froh, es hat funktioniert. Ich füge es als Antwort hinzu. Du kannst es akzeptieren :) –