2016-11-27 8 views
0

Wie kann der Name eines variablen Schlüssels in ReactJS korrekt an setState übergeben werden? Ich finde ich das temporäre Karte Spiel, a laProgrammatisch generierte react state Schlüsselnamen

removeLookup(idx) { 
    let lookupPrefix = this.composeKeys(Editor.fooDefinition, "lookups"); 
    let arraySizeKey = this.composeKeys(lookupPrefix, Editor.arrayLengthKey); 
    let lookupCount = this.state[arraySizeKey]; 

    let newState = new Map(); 
    newState[arraySizeKey] = lookupCount - 1; 
    newState[this.composeKeys(lookupPrefix, Editor.isDeletedKey)] = true; 

    this.setState(newState); 
} 

Es funktioniert spielen zu müssen, aber ich würde lieber nennen nur setState bei jeder Änderung, statt die Karte im Voraus bauen, vor allem in Fällen, in denen ich nur habe eine solche Modifikation.

Antwort

0
You don't have to use map you acn use just an obj. 

var _state = {}; 
_state[arraySizeKey] = lookupCount - 1; 
_state[this.composeKeys(lookupPrefix, Editor.isDeletedKey)] = true; 
this.setState(_state); 

Aber ich denke, unten ist, was Sie benötigen, können Sie Variablennamen in [...]

this.setState({ 
    [arraySizeKey]: lookupCount - 1, 
    [this.composeKeys(lookupPrefix, Editor.isDeletedKey)]:true 
    }); 
+0

, die den Schlüssel ein Array von String macht schreiben, kein String. notiert re: die Karte. – kolosy

Verwandte Themen