将映射数据从 api 传递到另一个组件
passing mapped data from an api to another component
所以我有从 componentDidMount 中的 api 获得的数据,然后我在渲染器中映射它。假设地图 returns 4 个对象。我如何创建捕获特定对象数据的按钮单击事件,并将其沿路由传递到另一个组件?
代码:
clickEvent(){
???
}
this.example = this.state.data.slice(1).map((data, key) =>
<div key={item.Id}>
<div>{data.dataIWantToPass}</div>
<Link to='/next_component_path' onClick={clickEvent}}>Click</Link>
</div>
所以假设上面 returns 4 个对象。我想要第三个,当单击 link 以传递其数据时。
你需要使用redux。这允许您将数据存储在全局应用程序商店中,并从订阅商店的任何组件获取数据。今天几乎每个 React 项目都需要 redux 来管理整个应用程序的数据
clickEvent(dataUWantToPass){
<NewComponent dataPassed={dataUWantToPass} />
}
this.example = this.state.data.slice(1).map((data, key) =>
<div key={data.Id}>
<div>{data.dataIWantToPass}</div>
//Link is a react-router-dom component, this helps you to redirect to other component (to which you have added the route for
<Link to='/next_component_path'>
<button onClick={()=>this.clickEvent(data.dataIWantToPass)} value="Click"/>
</Link>
</div>
))
您可以在 NewComponent 中接收数据作为 props。
如果你想检查,你可以在 NewComponent 中编写 componentWillReceiveProps() 方法:
componentWillReceiveProps(reveivedProps){
console.log(reveivedProps);
}
好的,我已经通过将评论中的各个部分拼凑在一起解决了这个问题,感谢您的贡献。是这样解决的:
在 link 标签上我这样做了:
<Link to={{ pathname: '/path', query:{passed_id: data.id} }}></Link>
然后在路径路由到的组件上:
this.setState({passed_id: this.props.location.query.passed_id});
这让我可以访问我传递的数据,在本例中是一个 ID。现在我只需要弄清楚如何将该 ID 与我也传递的循环数据(通过本地存储)进行比较,并对其进行映射。我想还有一个问题。
所以我有从 componentDidMount 中的 api 获得的数据,然后我在渲染器中映射它。假设地图 returns 4 个对象。我如何创建捕获特定对象数据的按钮单击事件,并将其沿路由传递到另一个组件?
代码:
clickEvent(){
???
}
this.example = this.state.data.slice(1).map((data, key) =>
<div key={item.Id}>
<div>{data.dataIWantToPass}</div>
<Link to='/next_component_path' onClick={clickEvent}}>Click</Link>
</div>
所以假设上面 returns 4 个对象。我想要第三个,当单击 link 以传递其数据时。
你需要使用redux。这允许您将数据存储在全局应用程序商店中,并从订阅商店的任何组件获取数据。今天几乎每个 React 项目都需要 redux 来管理整个应用程序的数据
clickEvent(dataUWantToPass){
<NewComponent dataPassed={dataUWantToPass} />
}
this.example = this.state.data.slice(1).map((data, key) =>
<div key={data.Id}>
<div>{data.dataIWantToPass}</div>
//Link is a react-router-dom component, this helps you to redirect to other component (to which you have added the route for
<Link to='/next_component_path'>
<button onClick={()=>this.clickEvent(data.dataIWantToPass)} value="Click"/>
</Link>
</div>
))
您可以在 NewComponent 中接收数据作为 props。 如果你想检查,你可以在 NewComponent 中编写 componentWillReceiveProps() 方法:
componentWillReceiveProps(reveivedProps){
console.log(reveivedProps);
}
好的,我已经通过将评论中的各个部分拼凑在一起解决了这个问题,感谢您的贡献。是这样解决的:
在 link 标签上我这样做了:
<Link to={{ pathname: '/path', query:{passed_id: data.id} }}></Link>
然后在路径路由到的组件上:
this.setState({passed_id: this.props.location.query.passed_id});
这让我可以访问我传递的数据,在本例中是一个 ID。现在我只需要弄清楚如何将该 ID 与我也传递的循环数据(通过本地存储)进行比较,并对其进行映射。我想还有一个问题。