我现在想用react和antd实现一个传统的后台管理界面
上面是标题,左边是菜单,右边是tabs页签,点击左侧的菜单项就新开一个tab页,根据配置的菜单id或者js的相对路径 来动态的将指定的component加载到tab页面上。
根据antd的demo https://ant.design/components...
打开一个页面没问题。但是页面里面的内容如何动态加载我指定的react组件,
请老司机们提供以下解决思路。谢谢
我现在想用react和antd实现一个传统的后台管理界面
上面是标题,左边是菜单,右边是tabs页签,点击左侧的菜单项就新开一个tab页,根据配置的菜单id或者js的相对路径 来动态的将指定的component加载到tab页面上。
根据antd的demo https://ant.design/components...
打开一个页面没问题。但是页面里面的内容如何动态加载我指定的react组件,
请老司机们提供以下解决思路。谢谢
webpack4 下有新的方法了
public onClickMenu(menu: any){
let page = this.state.pages.find((p) => {
return p.key === menu.key;
})
if (!page){
import('../' + menu.url).then(component => {
page = {
key: menu.key,
icon: menu.icon,
title: menu.title,
pageType: menu.pageType,
url: menu.url,
content: menu.content,
Component: component.default
}
this.setState({
pages: [...this.state.pages, page]
})
this.onChange(page.key);
}).catch(e => {
console.log(e)
})
}
else{
this.onChange(page.key);
}
}
<page.Component />
import { Tabs } from 'antd';
const TabPane = Tabs.TabPane;
function callback(key) {
console.log(key);
}
ReactDOM.render(
<Tabs defaultActiveKey="0" onChange={callback}>
{
arr.map((item, index) => {
return <TabPane tab={"Tab " + index} key="index">Something</TabPane>
})
}
<TabPane tab="Tab 1" key="1">Content of Tab Pane 1</TabPane>
<TabPane tab="Tab 2" key="2">Content of Tab Pane 2</TabPane>
<TabPane tab="Tab 3" key="3">Content of Tab Pane 3</TabPane>
</Tabs>
, mountNode);
arr是你的数组,可以动态增加或者重新赋值。
2 回答2.7k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答1.6k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
这个是不是你想要的结果http://111.231.202.62:82