Я хочу импортировать компонент React из файла jsx в шаблон и отобразить его в шаблоне с помощью ReactDOM
. Позже в производстве я хотел бы отправлять реакцию и все зависимости компонента только тогда, когда загружается сайт, на котором есть этот компонент.
Я создал компонент React следующим образом: editor.jsx
import * as React from "react";
import {Editor} from "draft-js-plugins-editor";
const plugins = [];
export class EditorComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
editorState: EditorState.createEmpty(),
};
}
onChange(editorState) {
this.setState({
editorState,
});
}
render() {
return (<Editor
editorState={this.state.editorState}
onChange={this.onChange}
plugins={plugins}
/>);
}
}
http://www.phoenixframework.org/docs/static-assets предлагает требование синтаксис для доступа к экспорту модулей. Поэтому я добавил в свой шаблон <script>const editor = require("web/static/js/editor").EditorComponent</script>
следующее. Однако это не работает, потому что браузер не может интерпретировать требование (или бранч не понимает его).
Я настроил бранч так:
plugins: {
babel: {
// Do not use ES6 compiler in vendor code
ignore: [/web\/static\/vendor/],
presets: ["es2015","react"]
}
},
modules: {
autoRequire: {
"js/app.js": ["web/static/js/app"],
"js/editor.jsx": ["web/static/js/editor"]
}
},
Я немного потерялся здесь. Как это может быть сделано?