Реагировать: Обновить переменные состояния - PullRequest
0 голосов
/ 22 октября 2018

В React для обработки изменений переменных мы делаем:

handleChangeRound = (round) => {
  this.setState({round: round});
}

updateLoading = (isLoading) => {
  this.setState({isLoading: isLoading});
}

Есть ли способ записать

this.setState({round: round});
this.setState({isLoading: isLoading});

как

this.updateState(round);
this.updateState(isLoading);

, учитываяпеременные round и isLoading существуют в состоянии и соответствуют имени переменной, чтобы избежать избыточности variable: variable?


PS: вдохновлен:

console.log({x: x, y: y});
// output:
// {x: 10, y:20}

canзаписываться как

console.log({x,y});
// output:
// {x: 10, y:20}

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Все, что вам нужно, это написать setState с динамическим obj и передать объект в функцию, такую ​​как

this.updateState({ round });
this.updateState({ isLoading });

updateState = (obj) => {
   this.setState(obj)
}

Пример демонстрации

0 голосов
/ 22 октября 2018

вы можете использовать setState с обратным вызовом

this.setState(prevState => {
 return {
   isLoading:!prevState.isLoading
 }
})

или можете делать что-либо еще с prevState

0 голосов
/ 22 октября 2018

Вы можете записать его как

this.setState({round});
this.setState({isLoading}); 

, используя сокращенную запись свойства объекта из ECMAScript 6 / ES2015.Основная идея заключается в том, что вы можете опустить ключ свойства, поскольку объявление переменной имеет ключ.

Определения свойств

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...