2016-07-20 22 views
0
zuweisen

i-Objekt im Zustand haben -reagieren - SetState Objekt Artikel finden dann

this.state = { 
    states: { 
    na: 0, s1a: 0, s2a: 0, s3a: 0, s4a: 0, l1a: 0, l2a: 0, l3a: 0, t1a: 0, t2a: 0, t3a: 0, 
    nb: 0, s1b: 0, s2b: 0, s3b: 0, s4b: 0, l1b: 0, l2b: 0, l3b: 0, t1b: 0, t2b: 0, t3b: 0 
    }, 

und ich möchte Wert eines Schlüssels ändern meine Funktion i -

onInputUpdated(id){ 
var array = {}; 
let char = id.slice(-1); 

switch(char){ 
    case 'a': 
    array[id] = this.getY(ReactDOM.findDOMNode(this.refs[id].refs.inp).value); 
    break; 

    case 'b': 
    array[id] = this.getX(ReactDOM.findDOMNode(this.refs[id].refs.inp).value); 
    break; 
} 

this.setState({ 
    states: { id : array[id]} 
}); 

aber es gibt keine id, id repräsentiert String 'na' oder andere ... also wie kann ich das machen? irgendwelche Tipps pls? btw onIputUpdated (id) ist callBack von Kindern ..

Antwort

1

Erstens können Sie verschachtelte Zustände nicht direkt aktualisieren. Sie müssen das gesamte "states" -Objekt aktualisieren. So etwas wie dieses

let oldStates = this.state.states; oldStates[id] = array[id]; this.setState({ states: { ...oldStates } });