Задать вопрос
victorzadorozhnyy
@victorzadorozhnyy

Как правильно хранить и выводить из state несколько элементов?

Пытаюсь сделать стейт со множеством <UserRow/>
//через loop множество UserRow загружаю
that.setState( {user_row: that.state.user_row+<UserRow/>} );
//Выводит так [object Object][object Object][object Object]

Если один элемент задавать, то все нормально выводится
that.setState( {user_row: <UserRow/>} );
Как правильно такое реализовать?
  • Вопрос задан
  • 254 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
"+" это оператор сложения или конкатенации строк, поэтому каждый из объектов переводится в строку. Если метод toString() у объекта не определён, строка будет "[objectObject]".

Вместо этого, создайте массив, заполните его в цикле, и вставьте как есть. Понадобится каждому элементу добавить уникальное значение свойства "key", иначе React может ругаться. См. документацию React про Dynamic Children.
render() {
  var i, rows = [];
  for(i=0;i<N;i++) { rows.push( <UserRow key={ i } /> ); }
  // .. 
  return (
    <div>
        { rows }
    </div>
  );
}


state задействовать в вашем случае, скорее всего, вообще не нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽