TypeError: Невозможно прочитать свойство 'name' из null в функции экспорта по умолчанию, используя скрипты реагирования для компиляции - PullRequest
2 голосов
/ 24 сентября 2019

?

Я сталкиваюсь с проблемой компиляции, которую мне удалось как-то обойти, но я бы хотел понять, откуда именно эта проблема.Вот проблема:

Я использую проектact-create-app для начальной загрузки проекта React, и я получаю следующую ошибку, во время компиляции, с реакцией-скриптами (v3.1.1) при запуске react-scripts start:

Failed to compile.

./src/reducers/test.js
TypeError: Cannot read property 'name' of null
    at Array.filter (<anonymous>)

Ошибка возникает в файле test.js:

const initialArray = ['value1'];

export default function(inputArray = initialArray) {
  return [...inputArray, 'value2'];
};

После исследования я обнаружил эту, более или менее связанную проблему, https://github.com/standard-things/esm/issues/434, по умолчанию экспортирует анонимную функцию.Назвав мою функцию, решил проблему компиляции ?

const initialArray = ['value1'];

export default function myFunc(inputArray = initialArray) {
  return [...inputArray, 'value2'];
};

(именованный экспорт вместо экспорта по умолчанию также решил проблему)

Но я часто экспортироваланонимные функции по умолчанию, и я никогда не сталкивался с ошибкой компиляции.И это то, что я сейчас делаю в других частях моего кода, не испытывая ошибки компиляции из react-scripts.

Так что я также взглянул на массив ввода, используемый функцией.Если я удаляю оператор распространения, чтобы получить строку возврата, подобную этой: return ['value2'];, она компилируется, но поведение функции изменяется.Поэтому я попытался изменить присвоение по умолчанию на inputArray следующим образом, и оно тоже скомпилировалось:

const initialValue = 'value1';

export default function(inputArray = [initialValue]) {
  return [...inputArray, 'value2'];
};

Но еще раз, я не понимаю, почему мое первоначальное решение не скомпилируется.Вы видите что-то, чего я все время скучал?

Спасибо вам, ребята, за уделенное время!?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...