Я пытаюсь включить материал-ui в проект React, который использует gulp/browsify. Сначала я понял, что мне нужно было перейти в каталог node_modules/material-ui и установить там npm для создания реальных источников из файлов JSX.Материал-ui: ReactTransitionGroup не определен
$ npm install material-ui --save
$ cd node_modules/material-ui
$ npm install
Далее я добавил следующие строки в моем проекте:
var React = require ('react/addons');
var e = document.getElementById ('react-mount-pt');
React.render (React.createElement (RootFrame.RootFrame, null), e);
RootFrame является компонентом, который я написал, ничего не делает фантазии. Она включает в себя подкомпонент, который пытается создать экземпляр компонента из материала-интерфейса, как это:
var Mui = require ('material-ui');
/* further below, in render(): */
return React.createElement (Mui.RaisedButton ({ label: 'Default' }));
Когда я пытаюсь запустить мое приложение, я получаю ошибку: «неперехваченным TypeError: Не удается прочитать свойство„TransitionGroup“неопределенных» в node_modules/материально-щ/Библиотека/dialog.js на линии, содержащий:
var ReactTransitionGroup = React.addons.TransitionGroup;
при поиске в материально-щ источников (https://github.com/callemall/material-ui/blob/master/src/dialog.jsx), причина становится очевидным: Некоторые линии выше нарушившего линии есть:
var React = require('react');
, но, как мне сказали, он должен скорее потребовать («реагировать/дополнять»), чтобы иметь возможность использовать TransitionGroup.
Как я должен использовать эту библиотеку?
EDIT: С официального сайта React, https://facebook.github.io/react/docs/addons.html
When using the react package from npm, simply require('react/addons')
instead of require('react') to get React with all of the add-ons.
материал-щ не делает этого, что, вероятно, почему я получаю эту ошибку.
В моем файле main.js, я добавил:
var React = require ('react/addons');
var ReactTransitionGroup = React.addons.TransitionGroup;
Этот фрагмент кода выполняется первым, и я получаю ненулевое ReactTransitionGroup. Позже, когда требуется материальный ui, материал-ui требует («реагировать») и получает версию без ReactTransitionGroup. Очевидно, что ошибка в материалах, я бы сказал!
Вы требующие/включая/импортировать библиотеку React каким-либо образом в файле, который вы хотите использовать TransitionGroup? КПП. сумма кода, который вы указали, является наименее не достаточной. – jalooc
Я действительно не хочу использовать TransitionGroup; это материал, который, похоже, использует его. Код, который я показывал, принадлежит самому материалу-ui, поэтому вы должны увидеть полный исходный код в любом проекте, который использует материал-ui, или взглянуть на источники GitHub. –
Я сам использую материал-ui, и он не бросает эту ошибку. На данный момент я могу сказать, что 'require ('response')' отлично (в отличие от 'require ('response/addons'), который вы предположили, потому что' React.addons .... 'получает аддоны. Во всяком случае, я буду продолжать думать о решении. – jalooc