当打开几个标签时,不可能使用SignalR,每个标签分配有唯一的ID(参见.当SignalR一次进行8-10个连接时,实时聊天不起作用).
但.我在此stackoverflow问题中描述了一种解决方法.我们的想法是按顺序覆盖connectionid,每个打开的选项卡都有相同的连接ID:因此,逻辑上,在我的特定情况下,没有理由为每个选项卡都有唯一的ID,因为每个选项卡由一个MyApplicationUserId打开.
无论如何,它已经在stackoverflow中被注意到(请参阅SignalR如何处理重复的连接ID?),该connectionid必须是唯一的.并且他们说,IConnectionIdGenerator将在一个upcomming版本中删除.
所以,这是一条死胡同.我必须使用唯一的ID,但我不能使用SignalR打开几个浏览器选项卡.
谢谢.梅德.
我动态导入组件
let that = this
import('./pathToMyComponent').then(component => {
// how to pass props to the component here?..
that.setState({myModule : component.default})
})
Run Code Online (Sandbox Code Playgroud)
如何将 props 传递给组件?我将把组件传递给路由器:
<Route path='myPath' component={this.state.myModule}/>
Run Code Online (Sandbox Code Playgroud)
先感谢您。
更新:
我已经设法解决它:
import('./pathToMyComponent').then(component => {
that.setState({myModule : component.default})
})
Run Code Online (Sandbox Code Playgroud)
然后在一个函数中:
GetComponent() {
let match = {}
let match.param = {nick : 'userNick'}
let Component = this.state.module && this.state.module.default
return this.state.myModule ? (<Component match={match} />) : (
<div>loading...</div>
)
}
Run Code Online (Sandbox Code Playgroud)