javascript - 如何在 React 中将选定的数据从子状态获取到父状态
问题描述
我有一个飞行页面,上面有各种卡片,每张卡片都有不同的路线信息。在每张卡片中,我都有一个由 flightID 标识的选择按钮。
Select(FD) {
this.state={route:''};
return (
<div>
{FD.FlightID}
<label>
<Checkbox id={FD.FlightID}
name={FD.FlightID}
checked={this.setState.route}
onChange={this.handleCheckboxChange}
/>
<span>Select</span>
</label>
</div>
)
}
Select 方法在每张卡片中被调用。
return data.map( FD1 => (
<Row>
<Card className="card">
<Card body className="text-center">
<CardTitle data-es-label="location"> Location:
{FD1.Departure}
</CardTitle>
<CardText data-es-label="Price">Price
{FD1.price}
</CardText>
{this.Select(FD1)}
<CardActions>'
如何访问选择发送以进行预订的特定卡的数据?
编辑:handleCheckBoxChange
handleCheckboxChange = event =>
this.setState({ route: event.target.checked });
解决方案
一种方法是像这样在 onChange 方法中传递 id
<Checkbox
...
onChange={() => this.handleCheckboxChange(FD.FlightID)}
/>
然后在父组件中,您可以像这样从数据数组中获取元素
handleCheckboxChange = (id) => {
const selected = data.find(e => e.FlightID = id);
...
}
如果你想通过更多组件传递一些数据,你需要阅读 React 上下文(https://reactjs.org/docs/context.html)
推荐阅读
- spring-boot - 在 Spring Boot 中将大型数据集流式传输为 CSV
- java - Java中的客户端-服务器猜数字游戏(套接字编程)
- spring-cloud - Spring cloud eureka和spring数据流的区别
- javascript - 如何对一个或多个数组进行排序
- vuejs2 - 在 v-data-table 中时 v-dialog 不打开
- c# - ZenjectException:无法解析“A”。对象图:
- list - Prolog - 比较包含其他列表作为元素的 2 个列表
- excel - Excel - 查找非线性回归的函数
- java - 闰年的 Java 程序
- c# - Xamarin.Android (Visual 2019) - 将发布的 .apk 视为存档 - 无法打开/安装