Я пытаюсь использовать сторонний компонент реакции (react-slick) в моем JSX и столкнулся с проблемой. Я пытаюсь использовать его очень похоже на пример this, созданный создателем приложения (ниже пример example1.jsx).Как использовать компонент, реагирующий на npm, в JSX
Всякий раз, когда я делаю это я получаю 2 предупреждения и ошибки:
Warning: This JSX uses a plain function. Only React components are valid in React's JSX transform.
Warning: Something is calling a React component directly. Use a factory or JSX instead. See: http://fb.me/react-legacyfactory
Uncaught TypeError: Cannot read property '__reactAutoBindMap' of null
Я также пытался что-то подобное, как example2.jsx, которое было найдено решение в другой переполнения стека вопрос. Однако, хотя никаких предупреждений или ошибок не было, в этом случае код вообще не отображался.
Я пробовал различные методы использования React.createFactory (который не должен использоваться в JSX для начала) и других финалистов, но без результатов.
Это, наверное, глупый вопрос, но как, черт возьми, я использую установленные компоненты npm в своем JSX?
example1.jsx
var React = require('react');
var Slider = require('react-slick');
var SingleItem = React.createClass({
render: function() {
var settings = {
dots: true,
}
return (
<div>
<h3> Image slider with one item at a time</h3>
<Slider dots={true}>
<div><img src="/img/autumn.jpg" alt=""/></div>
<div><img src="/img/sun.jpg" alt=""/></div>
</Slider>
</div>
);
}
});
var App = React.createClass({
render: function() {
return (
<div className='container'>
<SingleItem />
</div>
);
}
});
example2.jsx
var App = React.createClass({
render: function() {
return (
<div className='container'>
{SingleItem}
</div>
);
}
});
Вы используете browserify или WebPack? –
В настоящее время используется webpack – Brian
Не уверен, что response-slick позволяет применять настройки напрямую, как вы делаете, с точками = {true}, вместо этого вы можете сделать для ссылки на объект настроек, установленный в рендеринге. –
Thomas