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/>} );
Как правильно такое реализовать?
  • Вопрос задан
  • 251 просмотр
Решения вопроса 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 задействовать в вашем случае, скорее всего, вообще не нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы