Вам нужно явно return
jsx
из вашего map
return (
{
packageItems.map((packageItem, index) => {
return (
<div className="card" style={{ width: "18rem" }} key={packageItem.id}>
<img src={packageItem.image} className="card-img-top" alt="static website icon" />
<div className="card-body">
<h3 className="card-title">{packageItem.title}</h3>
</div><hr />
</div>
)
})
}
)
При вызове map
из блока jsx вам не нужно возвращать, потому что выражения выполняются немедленно:
const Component = () =>{
return(
{ arr.map(item => <div />) }
)
}
Взгляните на приведенный выше код:
Вам не нужно return arr.map(/*...*/)
, поскольку возвращаемый массив уже неявно встроен в ваш блок jsx
(помните, что arrays
являются действительными детьми). Но функция, переданная в качестве аргумента map
, также должна явно возвращать новый элемент сопоставленного массива. При использовании одной строки arrow functions
оператор return
также является неявным
arr.map(item => <div/>)
Это эквивалент
arr.map(item =>{
return item
})
Здесь вы можете безопасно опустить return
, но с функциями, которыезанимает более одной строки (как ваша) вам нужно явно return
преобразование
arr.map(item =>{
return(
<>
<span> Foo </span>
</>
)
})