Добавить элементы в массив состояний в цикле - PullRequest
0 голосов
/ 07 мая 2020

Я хочу сначала инициализировать массив значениями false. Я хочу сделать это через al oop. Однако массив состояний обновляется только один раз

componentDidMount = () => {
 const { preferences } = this.state;
 const { eventTypes } = constants;

 for (let i = 0; i < eventTypes; i += 1) {
  this.setState(state => {
    const list = preferences.concat(false);
    console.log(list);
    return { preferences: list };
  });
}

}

Как я могу объединить несколько значений через al oop? Или, может быть, есть более эффективный способ?

PD Значение eventTypes может измениться, поэтому создание нескольких concat может быть не очень хорошей идеей.

Ответы [ 3 ]

1 голос
/ 07 мая 2020

Попробуйте следующее:

var size = 10
while(size--) preferences[size] = value;

Это вернет массив из 10 элементов ложных данных.

В вашем случае:

var size = eventTypes;
0 голосов
/ 07 мая 2020

Вы можете сделать что-то вроде этого: -

componentDidMount = () => {
 const { eventTypes } = constants;
 preferences = eventTypes.map(e => false);
 this.setState({ preferences });
}
0 голосов
/ 07 мая 2020
componentDidMount() {
  this.setState({
    preferences: Array(eventTypes).fill(false)
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...