尝试以下操作:
<Router>
<Route path='/' component={(props) =>
(<SomeComponent value={this.state.value} {...props} )/>} />
</Router>
注意,您需要通过
...props
如果要访问组件中的管线特性(例如匹配、位置或历史,如
this.props.history
组件代码中)。
更新:
出于性能原因,最好使用
render
在这种情况下,如:
<Router>
<Route path='/' render={(props) =>
(<SomeComponent value={this.state.value} {...props} )/>} />
</Router>
根据
react docs
:
使用组件(而不是渲染或子级)时
路由器使用React。createElement从
给定组件。这意味着如果您向
组件属性,则在每次渲染时创建一个新组件。
这将导致现有组件卸载和新的
安装组件,而不仅仅是更新现有组件。
使用内联函数进行内联渲染时,请使用渲染或
儿童道具(下图)。