reactjs - 如何从另一个函数访问类组件内的函数?
问题描述
我是 React 的新手,我正在尝试编写一个使用 API 的应用程序。代码更广泛,所以我删掉了问题部分并放在这里,我不知道这是否可能做到,所以如果有人知道该怎么做,那将是一个很大的帮助。
-解释。
当我deleteProduct()
通过 props 调用外部函数listTemplate.js
时,内部getProducts()
给了我这个错误:
未处理的拒绝(TypeError):this.getproducts 不是函数
export default class test extends Component {
constructor(props) {
super(props);
this.state = {
products: [],
};
}
async componentDidMount() {
this.getproductos();
}
async getproducts() {
const res = await axios.get("http://localhost:5000/api/productos");
this.setState({ products: res.data });
//Set in products info like {products:[name: 'shoes', model:'XXL', price:'90' ]}.
}
async deleteProduct(id) {
await axios.delete("http://localhost:5000/api/productos/" + id); //Delete selected product.
this.getproductos(); //get actualized products array.
}
render() {
const { products } = this.state;
return (
<div className="col-md-6">
<ListTemplate products={products} delBtn={this.deleteProduct} /> //here i pass through listTemplate deleteProduct() function.
</div>
);
}
}
/******************************************************************************/
在另一个 .js 文件中,我有这个:
export default function ListTemplate(props) {
const { products } = props.product;
return (
<div className="container">
<div className="header">
<h2>Product List:</h2>
</div>
{products.map((product) => (
<div class="body" key={product._id}>
<span>{product.name}</span>
<span>{product.model}</span>
<span>${product.price}</span>
<button
type="button"
class="btn btn-danger btn-sm"
onClick={(e) => {
props.delBtn(product._id);
}}
>
Delete Item
</button>
</div>
))}
</div>
);
}
我的问题是何时deleteProduct()
完成并尝试getProduct()
. 爆炸。
解决方案
尝试创建一个箭头方法,如
deleteProduct = async (id) => {
...
}
推荐阅读
- python - 如何在某些条件下获取特定日期之前的行数
- node.js - 无法通过 Docker 运行(Linux 容器)或创建映像(Windows 容器)Gatsby React 站点(win 二进制文件错误,匹配清单错误)
- machine-learning - 如何在 Pytorch 的高级库中实现参数化元学习器?
- c - cpu-miner中的十六进制到二进制
- python - 如何平滑图中的大异常
- sql - SQL 仅在 covid 感染期间选择药物
- php - 为什么在 php 7 中添加回调类型提示会触发弃用警告
- flutter - 如何在颤动中制作填字游戏?
- linux - 工作因不明原因被杀
- javascript - 如何资源覆盖(逆向工程)URL 为 data:text/javascript;charset=UTF-8;base64,DQoNCi 的 javascript 文件