如何使用重定向将道具传递到路线

时间:2019-01-07 07:53:04

标签: javascript reactjs

我正在做一个reactjs项目,现在我必须将prop从组件A传递到组件B,组件A在render函数中具有以下代码:

{this.state.showComponentedit ?
<div>
<Redirect to={'/editB'} editdata={this.state.feedData} />: null
</div>
}

我正在使用以下代码获取B在A组件中传递的当前数据:

// inside a random function which will be invoked on button press
console.log("Props from B", this.props.edidata);

在组件A中edidata为null。当我调用路由“ editB”并在组件B中使用该值时如何获得该值。谢谢

3 个答案:

答案 0 :(得分:1)

您还可以像这样将对象传递给Redirect的'to'属性:

<Redirect to={{
  pathname='/editB'
  state={
    editdata: this.state.feedData
  }
}}/>

然后在editB组件中,您可以从以下位置获取数据:

  

this.props.location.state

我希望这种方法可以解决您的问题。

答案 1 :(得分:0)

首先,您必须使A可以访问B中的数据

您可以通过以下方法实现:将数据提升到父组件,然后使用Route

将该数据传递给A。
 <Route
   exact={true}
   path="/mycomponent"
   render={props => <EditComponent editData={this.state.feedData} />}
 />

答案 2 :(得分:0)

也许您可以这样做:

<Redirect
  to={{
    pathname: "/login",
    search: "?utm=your+face",
    state: { referrer: currentLocation }
  }}
/>

可以通过B组件中的this.props.location.state访问状态对象。

更多详细信息:https://reacttraining.com/react-router/web/api/Redirect/to-object