2017-03-25 9 views
0

Ich versuche, einige dynamische JSON zu erstellen, wie basierend auf einem Wert eines Namens untervar innerhalb Feuerbasis gesetzt

this.merchantFirebase.child(firebase.auth().currentUser.uid).update({ 
     this.props.data.name: { 
     status: this.state.productSwitch 
     } 
    }); 

Ich dachte so etwas wie

this.merchantFirebase.child(firebase.auth().currentUser.uid).update({ 
     latte: { 
     status: this.state.productSwitch 
     } 
    }); 

schaffen würde, aber es ist einfach hat mir einen Fehler von unerwarteten Token gegeben

Antwort

2

Sie müssen eine andere Notation dafür verwenden:

var updates = {}; 
updates[this.props.data.name] = { status: this.state.productSwitch }; 

this.merchantFirebase.child(firebase.auth().currentUser.uid).update(updates); 

Durch die Verwendung der eckigen Klammernotation "weiß" JavaScript, dass es this.props.data.name als Ausdruck auswerten muss, anstatt es als literalen Namen der Eigenschaft zu verwenden (wie es in Ihrem Code versucht wird).