getInitialState: function() {
p:{'Keeper' : [] , 'Defenders': [] , 'Midfield' : [], 'Forwards' : []}}
}
onUpdatePlayers : function (newState) {
var pos;
if (newState.position.includes('Back')) {
pos = 'Defenders'
} else if (newState.position.includes('Midfield')){
pos = 'Midfield'
} else if (newState.position.includes('Forward')) {
pos = 'Forwards'
} else {
pos = newState.position;
}
this.state.p[pos].push(newState)
}
Grundsätzlich möchte ich einige Arrays in mehrere State-Eigenschaft schieben. Irgendwie muss ich diesen Code "this.state.p [pos] .push (newState)" zu verwenden this.setState. Ich habe es googlen und etwas gefunden wieReact - Push-Array zu State
this.setState({
p : this.state.p[pos].concat([newState])
});
Offensichtlich hilft es überhaupt nicht. Kannst du mir das bitte mitteilen? Es wird Big Thanks sein,
Prost !!
Danke Yury, es funktioniert mit Ihrer Methode. !! aber ich glaube, es ist nicht die beste Möglichkeit, das Array des multiplen Zustands mit der getInitialState-Methode zu definieren. Sagen wir, ich habe keinen InitialState. Ist sauberer und bessere Möglichkeit, das gleiche Ergebnis zurückgeben? aber nicht tief verschachtelt oder mit Object.assign? –
"Es funktioniert mit Ihrer Methode." Könntest du da genauer sein? Wenn newState ein Array ist, sollte dieser Code mit dem im Status enthalten sein. 'Object.assign' arbeitet 1 Level tief. Sie müssen Code schreiben oder eine Bibliothek (z. B. lodash) verwenden, um ein tiefes Klonen durchzuführen. –