【发布时间】:2020-06-18 17:01:00
【问题描述】:
我目前正在将 react 项目与现有的 extjs 项目集成。要求是在单击按钮时在 extjs 页面中加载一个 react 组件,按钮驻留在 ext 项目中
【问题讨论】:
标签: javascript reactjs extjs react-router navigation
我目前正在将 react 项目与现有的 extjs 项目集成。要求是在单击按钮时在 extjs 页面中加载一个 react 组件,按钮驻留在 ext 项目中
【问题讨论】:
标签: javascript reactjs extjs react-router navigation
这不是那么容易,但你可以从下面的小代码开始:
Ext.create('Ext.panel.Panel', {
title: 'Hello',
width: 200,
height: 300,
dockedItems: [{
xtype: 'toolbar',
items: [{
text: "Load React Component",
handler: function () {
const panel = this.up('panel');
const e = React.createElement;
ReactDOM.render(
e('div', null, 'React'),
panel.body.el.dom
);
}
}]
}],
renderTo: Ext.getBody()
});
和 index.html
<HTML>
<HEAD>
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<!-- for Production -->
<!--<script src="https://unpkg.com/react@16/umd/react.production.min.js" crossorigin></script>-->
<!--<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" crossorigin></script>-->
</HEAD>
<BODY>
</BODY>
或者您使用面板的模板或 htmn 属性在 extjs 面板的主体中创建一个具有某些 ID 的 div,并在那里呈现您的反应项目。
附: 将 extjs 与 react 集成是一个非常糟糕的主意。
【讨论】: