Задать вопрос
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/>} );
Как правильно такое реализовать?
  • Вопрос задан
  • 253 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 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 Нижний Новгород
от 80 000 до 120 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽