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)
}
В принципе, я хочу подтолкнуть некоторые массивы к свойствам нескольких состояний. Как-то мне нужно изменить этот код «this.state.p [pos] .push (newState)» на использование this.setState. Я нашел это и нашел что-то вродеReact - Push массив к состоянию
this.setState({
p : this.state.p[pos].concat([newState])
});
Очевидно, что это совсем не помогает. Не могли бы вы посоветовать мне об этом? Это будет большое спасибо,
Cheers !!
Спасибо, Юрий, Он работает с вашим методом. !! , но, я думаю, это не лучший способ определить массив множественного состояния, используя метод getInitialState. Предположим, у меня нет InitialState. Более чистый и лучший способ вернуть тот же результат? но не использовать глубоко вложенные или использовать Object.assign? –
«Это работает с вашим методом». не могли бы вы уточнить это? Если newState - массив, этот код должен конкатцировать его с тем, который у вас есть в состоянии. 'Object.assign' работает на 1 уровне. Вам нужно написать код или использовать библиотеку (например, lodash), чтобы сделать глубокое клонирование. –