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 次  |  
        
|   最近记录:  |