Проблема возникает из-за этой части кода:
setItems(Items.push(nvxPic.map((image, key) => (
<img key={key} src={`Images/${image}`} alt="" />
)));
Код устанавливает значение переменной Items
равной длине нового массива, который вернул push
. Вот почему вы получаете 1
в качестве значения для переменной.
В качестве документации Array.prototype.push () заявляет:
Метод push () добавляет один или несколько элементов в конец массива и возвращает новую длину массива.
map
создает новый массив для вас, я думаю, вам не нужнов любом случае.
Из документации Array.prototype.map () вы можете увидеть:
Метод map () создает новый массив срезультаты вызова предоставленной функции для каждого элемента в вызывающем массиве.
Я думаю, что решение состоит в том, чтобы просто удалить часть push
из кода:
setItems(nvxPic.map((image, key) => (
<img key={key} src={`Images/${image}`} alt="" />
));
Так что map
возвращает новый массив, тогда setItems
обновляет значение переменной Items
, вам не нужно делать это с push
.