У вашего массива есть некоторые проблемы. basketball
и boxing
имеют {}
вокруг них, что является синтаксисом объекта. Таким образом, значение клавиши image
на самом деле что-то вроде { basketball: basketball }
. Вот почему отображается «[Object Object]». bike
является полным элементом JSX, а не источником изображения.
Вам необходимо изменить его на следующее:
[
{
name: "bike",
id: "1",
image: bike
},
{
name: "basketball",
id: "2",
image: basketball
},
{
name: "boxing",
id: "3",
image: boxing
},
]
Помните: {}
внутри JSX есть синтаксис для оценки JavaScript выражений. За пределами JSX это обозначение объекта.
Проблема с key
заключается в том, что вы предоставляете его не тому элементу. Ключ должен быть предоставлен элементу root внутри функции отображения. В данном случае это ul
(хотя мне интересно, действительно ли это то, что вы хотите, он создаст новый список для каждого элемента).