我正在做一个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中使用该值时如何获得该值。谢谢
答案 0 :(得分:1)
您还可以像这样将对象传递给Redirect的'to'属性:
<Redirect to={{
pathname='/editB'
state={
editdata: this.state.feedData
}
}}/>
然后在editB组件中,您可以从以下位置获取数据:
this.props.location.state
我希望这种方法可以解决您的问题。
答案 1 :(得分:0)
首先,您必须使A可以访问B中的数据
您可以通过以下方法实现:将数据提升到父组件,然后使用Route
<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