Ale*_*ex 2 reactjs react-router
我是反应的新手,甚至是反应路由器的新手,我创建了一个反应应用程序,其中包含一些路线,但有些路线需要相同的数据(道具)。我想在当前页面上按下按钮时通过 onClickEvent 传输这些道具。我读到了一些尝试,例如将按钮上的 onClick 侦听器绑定到类似的方法
handleOnClick(){
this.props.history.push('/booking')
))
Run Code Online (Sandbox Code Playgroud)
重定向到名为“预订”的路线。但是如何将当前页面的单个道具或整套道具传递给这个新页面?对此有什么解决方案,我如何访问重定向路线上的道具?
这是我的 Index.js,很快会添加更多路由:
const routing = (
<Router>
<div>
<Route exact path="/" component={App} />
<Route path="/booked" component={Booked} />
</div>
</Router>
);
ReactDOM.render(routing, document.getElementById("root"));
Run Code Online (Sandbox Code Playgroud)
路由树应如下所示: 我的 App.js 中有一个主视图,用于呈现 BookingItems 的组件。在 Bookingitem 中,我有多个道具。当我预订一些项目时,我应该被重定向到我的 Booked.js 组件。
在任何 BookingItems 中,我都有一个按钮,它应该重定向到 Booked.js。
预订项目:
onButtonClick() {
this.props.history.push("/booked");
}
render(){
return(
<div className="alignCenterDiv">
<button
onClick={this.onButtonClick.bind(this)}
align="center"
className="buttonBooking"
>
Buchen
</button>
</div>
)}
Run Code Online (Sandbox Code Playgroud)
预订:在这里,我想访问我在 BookingItems 中或我在预订项目中创建的任何道具以将其传递给 Booked。
如果您使用重定向:
this.props.history.push('/booking', {
myProp: this.props.myProp,
foo: 'bar'
})
Run Code Online (Sandbox Code Playgroud)
然后,在/booking页面中,您可以像这样访问变量:
console.log(this.props.location.state)
/*
{
myProp: '...',
foo: 'bar'
}
*/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5865 次 |
| 最近记录: |