Небольшая проблема. Замените forEach
на map()
:
var categoryList = categories.map(function (category) {
return (
<div className='navbar-item'>{category}</div>
);
});
Разница между forEach
и map
Давайте сначала посмотрим на определения в MDN:
forEach()
- выполняет предоставленную функцию один раз для каждого элемента массива. map()
- создает новый массив с результатами вызова предоставленной функции для каждого элемента в вызывающий массив.
Что именно это означает?
Что ж, метод forEach()
на самом деле ничего не возвращает (не определено). Он просто вызывает предоставленную функцию для каждого элемента в вашем массиве. Этот обратный вызов разрешен для mutate вызывающего массива.
Между тем, метод map()
также будет вызывать предоставленную функцию для каждого элемента в массиве. Разница в том, что map()
использует возвращаемые значения и фактически возвращает новый массив того же размера.
Улучшения
Кроме того, быстрое предложение , Если я могу? Используйте функции стрелок.
var categoryList = categories.map(category => (
<div className='navbar-item'>{category}</div>
);