reactjs - 删除 React 中的对象实例:“汽车”返回未定义
问题描述
我正在尝试更新我的应用程序,以便显示的每辆汽车都带有一个删除按钮,该按钮会在单击时从数据库中删除汽车。
在我的 deleteButton 组件中,我有以下内容,它给了我错误消息car is not defined
:
import React from 'react';
class DeleteButton extends React.Component {
constructor() {
super();
this.state = {
};
this.handleClick = this.handleClick.bind(this);
}
delete(car){
const data = this.state.data.filter(i => i.id !== car.id)
this.setState({data})
}
render() {
const label = 'Delete';
return (
<button className="delete-btn" onClick={this.delete.bind(this, car)}>{label}</button>
);
}
}
export default DeleteButton;
我应该如何定义car
?
解决方案
1.您需要将汽车置于这样的状态:
this.state = {
car: {
id: ''
},
};
但问题是数据,您需要将数据作为道具提供给删除组件。
然后从道具中获取数据而不是从状态中获取数据。
2.然后onDelete函数更新状态:
delete(car){
const data = this.props.data.filter(i => i.id !== car.id)
this.setState({car: data})
}
推荐阅读
- tensorflow - 如何在不循环数据的每个元素的情况下计算此准确性?
- reactjs - 为什么 Axios For Loop 不允许我在 React 中操作数据?
- kubernetes - GKE 上的 CI CD 管道 - 推送清单失败(已完成步骤 #5 -“推送清单”错误)
- c# - Xamarin.Android Tap Gesture 和 Long Press Gesture 不能一起工作
- wso2 - 提出请求未到达后端 api
- c++ - 是否有预处理器方法可以从调试符号中删除代码段?
- vba - 格式 - 预期的数组
- r - 使用 scale_fill_gradientn 将特定颜色分配给条形图中的确定值
- ios - Xcode 11.2 场景编辑器是否允许添加组件?
- excel - Excel VBA 从域中获取 IP 地址