Если у вас есть что-то, что позволяет вам делать версию без const
(или let
), то модули реализованы неправильно. Строка
export default CategoryCard = (props) => {
гласит: «Присвойте это значение (функция стрелки) уже существующей переменной *1007* CategoryCard
и экспортируйте значение как экспорт по умолчанию для этого модуля». Модули всегда находятся в строгом режиме, поэтому, если у вас нет объявления для CategoryCard
, это ошибка ссылки. (Без строгого режима вы можете создавать глобальные переменные, присваивая необъявленные переменные, но это плохая идея ™. :-))
Поскольку модули всегда строги, вам нужно, чтобы в них были const
или let
:
export default const CategoryCard = (props) => {
// −−−−−−−−−−−−^^^^^
Браузер, сообщающий вам об ошибке, является верным, потому что это ReferenceError (в строгом режиме) для присвоения необъявленному идентификатору.
Что нельзя сказать что вы всегда должны иметь const
или let
или function
или class
с export
. Вы не можете экспортировать результат произвольного выражения в качестве экспорта по умолчанию. Это действительный код, например:
export default 6 * 7;
Так что, если вы объявили CategoryCard
в другом месте, ваш экспорт будет действительным:
let CategoryCard;
export default CategoryCard = (props) => {
Я, конечно, этого не предлагаю , просто указывая, что это действительно. : -)