Я только что обновился от React 0.11.1 до 0.12.2. До сих пор моя структура кода заключалась в том, что мои Компоненты были в их собственном каталоге, я бы использовал Grunt для компиляции их в javascript-каталог, а затем объединил с React.js в один файл для использования в index.html.Каков правильный способ создания проекта React 0.12?
Project
|_index.html
| JSX
|_someFile.jsx
| JS
|_somefile.js
| Lib
|_react.js
| Production
|_concatenated.js
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
react: {
dynamic_mappings: {
files: [
{
expand: true,
cwd: 'jsx/',
src: ['*/*.jsx', '*.jsx'],
dest: 'js/',
ext: '.js'
}
]
}
},
concat: {
dist: {
src: ['js/lib/*.js', 'js/*/*.js'],
dest: 'prod/built.js'
}
},
...
});
};
После того, как я повышен до Реагировать 0.12.2 Я получил сообщение «Warning: Something is calling a React component directly. Use a factory or JSX instead. See: h[ttp://fb.me/react-legacyfactory][1]
» Код будет работать, но очевидно, я использую некоторые старые соглашения. Я прочитал react-legacyfactory и новый documentation, он выглядел как все, что мне нужно было добавить, добавить проект, и позвонить var React = require('react');
Я сделал это, я даже добавил, что реагирую и реагирую на мой пакет.json на всякий случай, но теперь я получаю «Uncaught Error: Module name "react" has not been loaded yet for context: _. Use require([])
« Я не очень хорошо знаком с требованием или с тем, как сейчас создается Реакт. Сочетание всех моих JS-файлов противоречит тому, как должны работать проекты React?
Эта ошибка выглядит так, как будто вы можете использовать require.js, но браузер является рекомендуемым инструментом для загрузки модуля с реакцией. Он также будет обрабатывать конкатенацию всех ваших файлов в один пакет. –