javascript - 为什么App.js中这部分代码不起作用?(我做了一个搜索过滤器)
问题描述
我有一些使用 Fetch 方法从数组中获取的名称列表,目前我想实现一个搜索过滤器,但是当我将 resetData () 方法插入到我的 componentDidMount 中时,我收到了这个错误:
这是我的沙盒中的代码:
https ://codesandbox.io/s/blue-cherry-66e9p
我应该在我的代码中修复什么以使我的搜索过滤器起作用?也许原因不仅在这一行?componentDidMount () 必须在那里,因为没有它其他东西将无法在我的项目中工作
解决方案
您忘记在function
函数名称 resetData 前面添加
async function resetData() {
const response = await fetch("/data/mass.json");
const data = await response.json();
this.setState({
data
});
这将为您解决错误。但这会产生范围问题,所以我建议这样做。
const resetData = async () => {
const response = await fetch("/data/mass.json");
const data = await response.json();
this.setState({
data
});
也因为这个函数在里面componentDidMount()
。您不能像尝试在内部渲染一样单独调用它,所以我建议您在 componentDidMount 之外获取此函数并在 componentDidMount 内部调用它,例如 -
const data = await this.resetData();
我想这如你所愿?
https://codesandbox.io/s/eloquent-albattani-7nyxt
编辑:我编辑了代码框内的代码,以便它可以根据您的需要工作。
推荐阅读
- sql - 在 SQL 中按值查找数据峰值并在一段时间内求和
- node.js - 为什么我要返回一个带有自定义状态字段和消息的 json 对象?
- firebase - 如何应用 Firebase 存储规则,以便只有管理员可以访问文件夹
- r - 您如何通过数据列之一中的因子为散点图中的点着色?
- routes - 从这里计算几个航点的优化路线:api
- h2o - 如何在 H2o Flow 中调整超参数时为“隐藏的丢失率”设置超参数值
- git - 如何更改/增加 git 历史记录中所有提交的日期?
- python - 如何解决这个错误?AttributeError:“元组”对象没有属性“条带”
- python-3.x - 如何在 python 中使用标题对非常大的 .csv 文件进行洗牌?
- javascript - 从 API 调用返回解析问题