2016-08-05 13 views
0

Ich versuche, ein bestimmtes Element des Array-Status in React-native zu aktualisieren. Als Beispiel habe ich 3 Modals mit der anfänglichen Sichtbarkeit als falsch erstellt.Array-Status-Update in React-native

Hier möchte ich 3 Modale mit jeder Taste auf der entsprechenden Modal-Seite unabhängig steuern. Also setze ich die anfängliche Statusvariable "modalVisible" als ein Array mit 3 Länge. Dann habe ich versucht, ein Element von modalVisible mit dieser Art von Befehl zu aktualisieren => "this.setState ({modalVisible [2]: true})", was letztendlich nicht mit diesem Fehler funktioniert (Syntax Error: ... Unexpected token) . Wenn das nicht möglich ist, muss ich den Weg finden, dies äquivalent zu machen. Zum Beispiel muss ich in der for-Schleife folgendermaßen schreiben: {this.state.modalVisible_ {i}}, damit der Code programmierbar weiß, wo er sich befindet.

Das Folgende ist mein aktueller Code.

Antwort

3

Was Sie tun, ist ein Array von Ihrem Array als ein Zustand Schlüssel, anstatt das Array in Ihrem Zustand zu ändern.

die gewünschte Funktionalität zu erreichen, würde ich Ihre setModalVisible Funktion umschreiben wie folgt:

setModalVisible(visible,th) { 
 
    const previousState = this.state.modalVisible 
 
    this.setState({ 
 
    modalVisible: [ 
 
     ...previousState(0,th), 
 
     visible, 
 
     ...previousState(th+1, previousState.length+1) 
 
    ] 
 
    }) 
 
}

Alternativ könnten Sie die folgende tun, was kürzer ist. Aber der oben beschriebene Weg tut es auf unveränderliche Weise.

setModalVisible(visible,th) { 
 
     let modalVisible = this.state.modalVisible 
 
     modalVisible[th] = visible 
 
     this.setState({ 
 
     modalVisible: modalVisible 
 
     }) 
 
     // could also do this.setState({modalVisible}) for short 
 
    }