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

Как сделать render без div-а, react?

Добрый день! Кто знает как в данном случае сделать рендер без div в react?
В react 16 для этого есть Fragment, но сейчас у меня ниже версия.
Кто знает как сделать это?
const Item= ({ list}) => (
  <div>
    {list.map(li=> (
      <p key={li}>{li} </p>
    ))}
  </div>
);


В таком случае
const Item = ({ list}) => list.map(li=> <p key={li}> {li}</p>);

ошибка
A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.
  • Вопрос задан
  • 458 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер
const Item = ({ list }) => (
  <React.Fragment>
    {list.map(li => <p key={li}>{li}</p>)}
  </React.Fragment>
);


// EDIT

const Fragment = ({ children }) => children;

const Item = ({ list }) => (
  <Fragment>
    {list.map(li => <p key={li}>{li}</p>)}
  </Fragment>
);
Ответ написан
@genius_spirit
Fragment не обязателен, так же как и div. просто нужно вернуть один основной контейнер, это может быть или или и т.д.
в твоей ошибке говорится что в map нужно делать return:
const Item = ({ list}) => list.map(item => return { item });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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