这是一个单页程序在tabs中多开窗口,对react-router进行扩展的程序。
- react
^15.4.2
- react-router
^4.2.0
- redux
^3.7.2
- lbc-wrapper
^0.0.12
确认您的环境满足上述要求后,您可以通过npm或yarn来安装
$ yarn add lb-react-router-extension
import renderTabs from 'lb-react-router-extension'
...
<div>
{renderTabs(this.props.route.routes, this.props)}
</div>
...
通过renderTabs方法加载的子组件中会默认传入props一个相关辅助操作的对象tabhelper, 使用方法如下:
this.props.tabhelper.goto(path, isNewTab)
Parameters |
type |
Description |
path |
string |
页面相对路径 |
isNewTab |
boolean |
是否在新tab打开。若值为false则把新页面刷新到当前tab,true则会新打开一个tab,默认为true |
this.props.tabhelper.goback()
this.props.tabhelper.closetab()
this.props.tabhelper.getsearch()
this.props.tabhelper.closeothersamepathtab()
this.props.tabhelper.dispatch(type, payload)
Parameters |
type |
Description |
type |
string |
自定义事件类型 |
payload |
any |
需要传递的数据 |
this.unsubscribe = this.props.tabhelper.subscribe(function(type, payload) {
if(type === '事件ID') {
}
})
componentWillUnmount() {
this.unsubscribe()
}
Parameters |
type |
Description |
type |
string |
自定义事件类型 |
payload |
any |
需要接收的数据 |
this.props.tabhelper.activeCallback(this.queryTable.refresh)
Parameters |
type |
Description |
callback |
function |
回调函数 |