react-router v4 如何静态传值给子组件
我是从Vue转过来的,可能思路有点受限吧,如果有其他思路请指正
在我想对一个组件进行多次渲染时,需要传入一个id值来让组件渲染不同内容,
但是<Route>没办法静态的传值给子组件
class Home extends Component{
render(){
let listData = Object.values(this.props.directory);
return(
<div className="home">
<ul className="row home_content">
{
listData.map((list, key) => (
<li className="ome_list" key={key}>
<Route exact path="/" component={Label} listid={list.id}/>
</li>
))
}
</ul>
</div>
)
}
}
子组件
class Label extends Component{
render(){
const list = this.props.directory[this.props.listid];
return(
<div className="mlabel">
<h3 className="mlabel_title">{list.title}</h3>
<ol className="mlabel_content">
<li className="mlabel_content_list">list.text[0]</li>
<li className="mlabel_content_list">list.text[1]</li>
</ol>
</div>
)
}
}
我的思路是在Home组件 <Route>里 传入listid给子组件,
然后在子组件Label里 获取listid 然后去state里找对应的数据渲染组件,
但是子组件里 this.props.listid 是undefined
我知道可以通过URL、query、state这种通过<Link>方法传值,但无法解决我遇到的问题
所以想问问,有什么方法可以静态不经跳转的传值给子组件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
react-router v4的route组件有一个render属性,可以用它来传递自定义参数:
将
改为