2017-05-22 5 views
1

Ich bin von Screen A auf Bildschirm B navigieren .. Und dann zurück Navigation A unter Verwendung vonWie Parameter zu übergeben, während zum vorherigen Bildschirm zu navigieren?

this.props.navigation.goBack(null); 

ich wissen will, zu screenen, wie wir Parameter übergeben können, während dies zu tun?

hier ist mein Code

import React, { Component } from 'react'; 
import { View, Text, TextInput, ScrollView } from 'react-native'; 
import Card from './Card'; 
import CardSection from './CardSection'; 
import MyButton from './MyButton'; 


class Settings extends Component{ 
constructor(props){ 
super(props); 
this.state = { 
    ip:'', 
    port:'' 
}; 
} 

onSaveClick() { 
console.log('Button clicked'); 
this.props.navigation.goBack(); 
} 
render(){ 
const { input, container } = styles; 
return(
    <View style = {container}> 
    <Card> 
    <CardSection> 
    <TextInput 
     style = {input} 
     onChangeText = {(ip) => this.setState({ip})} 
     placeholder = "IP Address" 
     autoCapitalize = "none" 
     autoCorrect = {false} 
     keyboardType = "numeric" 
    /> 
    </CardSection> 
    <CardSection> 
     <TextInput 
     style={styles.input} 
     onChangeText={(port) => this.setState({port})} 
     placeholder="Port Number" 
     autoCapitalize="none" 
     autoCorrect={false} 
     keyboardType = "numeric" 
    /> 
    </CardSection> 
    <CardSection> 
     <MyButton onPress ={this.onSaveClick.bind(this)}> 
     Save 
     </MyButton> 
    </CardSection> 
    <View> 
    </View> 
    </Card> 
    </View> 
); 
} 
} 

So wie kann ich Zustand dieser Komponente in der vorherige Komponente zugreifen zu verwalten. Können wir den Zustand als Parameter übergeben?

Antwort

2

Sie sollten die Redux Methodik folgen

Da zurück von Kind-Komponente übergeordnete Komponente Zustand/Informationsvermittlung (zweiter Bildschirm zum ersten Bildschirm) ein schlechtes Design-Muster ist wie dieser Fluss mehrere Pfade von Daten erzeugt in der Anwendung, die es schwierig macht zu debuggen.

Wie redux ist hilft

  1. Wenn klicken einreichen Sie die Daten auf einen globalen Speicher drücken. (Im Grunde genommen eine Aktion abzusenden und verwenden Minderer globalen redux Speicher zu aktualisieren)

  2. Navigieren Zurück zum vorherigen Bildschirm.

  3. Liste auf diese Veränderungen der vorherigen Seite über connect (von reagieren -redux Paket) und die Änderungen widerspiegeln.

Sie können das Knotenpaket react-redux verwenden.

Und das Beispiel folgen von hier ->http://redux.js.org/docs/basics/ExampleTodoList.html

Weitere hilfreiche Beispiele here.

+0

Danke. Für die ausführliche Erklärung. Ich werde mich sicherlich darauf freuen, diesem Designmuster zu folgen. – hrushilok

+0

Aber für jetzt, meine App hat nur zwei Bildschirme. Also habe ich einen Weg ohne Redux gefunden. Ich übergebe einen Rückruf, um den Status als Navigationsparameter zum zweiten Bildschirm zu aktualisieren. Und dadurch wird der Zustand der vorherigen Komponente aktualisiert. Da meine App nur zwei Bildschirme hat, finde ich das okay. – hrushilok

Verwandte Themen