2015-12-05 5 views
10

Я обновил свое приложение от 0,12 до 0,16, а после этого получил ошибку и не знаю, как ее решить.Обновление до ответной реакции 0.16

enter image description here

TypeError:undefined is not an object (evaluating 'GLOBAL.Text={ 
get defaultProps(){ 
throw getInvalidGlobalUseError('Text')}}') 

В Chrome Debugger:

Uncaught Error: Uncaught TypeError: Cannot set property 'Text' of undefined 

Благодаря

OBS: Я бегу на Android.

Я заметил, что изменение имени приложения решает проблему, я использую Evently как имя приложения сегодня. Я пытался воссоздать свою виртуальную машину, но не решил ее.

+1

У меня тот же вопрос о прошивке. Глядя на журнал Xcode, я получаю сообщение «Требуется неизвестный модуль» «RCTLog». –

ответ

0

Я решаю проблему. Я думаю, это было из-за прав в папке проекта. Я запустил chown в моей папке, чтобы исправить проблемы с разрешениями, и теперь все они работают.

Благодаря

+1

Можете ли вы дать более подробную информацию о том, что вы сделали для решения проблемы? У меня похожие проблемы, и я не уверен, что вы подразумеваете под «run chown» в своей папке. Что именно вы сделали? – IanVS

+0

Что вы запустили? – ericraio

+0

Моя проблема заключалась в разрешениях на папку. Chown - это командная строка для mac и linux для изменения права собственности на папку. Используемый мной chown выглядит так: 'chown -R user folder', где' -R' должен работать рекурсивно. –

10

В моем случае, я был в состоянии сузить причину до одного пункта в моем .babelrc файле:

{ 
    "presets": ["es2015"] 
} 

Как только я удалил, что и перезагрузки упаковщик (убедитесь, также используйте флаг --reset-cache), я прекратил получение ошибки.


Update 2: Похоже Реагировать Native делает некоторые changes к их .babelrc в версии 0.20.0. Поэтому, если вы используете эту версию или новее, вы должны следовать инструкциям: https://github.com/facebook/react-native/tree/master/babel-preset, чтобы указать свои настройки .babelrc.

Update: Я сузил это вниз дальше transform-es2015-modules-commonjs, что React-Native устанавливает некоторые параметры на конкретно {"strict": false, "allowTopLevelThis": true}. Предварительная установка es2015 не устанавливает этот параметр, и кажется, что React-Native .babelrc не переопределяет его. Если вы хотите использовать ES6 модули и преобразовать их в CommonJS, вам необходимо поместить следующее в вашем .babelrc:

{ 
    "plugins": [ 
     ["transform-es2015-modules-commonjs", {"strict": false, "allowTopLevelThis": true}] 
    ] 
} 

Note, Бабель 6, который я обновлен вместе с родным реагировать 0.16.0, больше не содержит преобразований по умолчанию. Первоначально я не осознавал, что пакетный пакет React-Native предоставляет большинство преобразований, которые вам могут понадобиться (перечисленные в их документах по адресу: https://facebook.github.io/react-native/docs/javascript-environment.html#javascript-syntax-transformers), и я думаю, что плагин «es2015» мешает некоторым из этих трансформаторов ,

Я также попытался использовать «babel-preset-react» (http://babeljs.io/docs/plugins/preset-react/), и этот плагин, похоже, не вызывал никаких ошибок.

+0

Я удалил плагин «es2015» из моего .babelrc и перезапустил упаковщик с -reset-cache, но теперь я получаю другие ошибки. – pjcabrera

+1

Звучит как прогресс. :) – IanVS

+0

Да, да. Благодаря! ;-) – pjcabrera

0

В моем случае проблема была мошеннической .babelrc двумя папками вверх (моя корневая папка кода); Я инициировал генератор йома, чтобы выстроить новый проект с помощью babel-6 ... случайно запущенный из коробки корневого кода. По-видимому, Babel пересек вверх от моих папок проекта, пока он не попал в этот .babelrc, который увязал с адаптивными настройками Babel ...

^это было первоначально редактировать на мой первоначальный ответ, который был удален, когда я был ОБНОВЛЕНИЕМ IT

Смежные вопросы