javascript - 获取请求方法 Get.. 我如何使用查询参数获得响应?
问题描述
fetchArea = (e) => {
this.setState(({ area }) => ({ area: e.target.value }));
console.log(new URLSearchParams({ input: this.state.area }).toString());
fetch(
`https://xegr-geography.herokuapp.com/places/autocomplete?` +
new URLSearchParams({ input: this.state.area }).toString(),
{
method: "GET",
mode: "no-cors",
headers: { "Content-Type": "application/json" },
params: { input: this.state.area },
}
)
.then((res) => res.json())
.then((data) => this.setState({ data: data }))
.catch((err) => console.log(err));
};
我收回“SyntaxError:输入意外结束”!我试图访问此端点并使用 3 个字符的输入类型进行搜索。
解决方案
没有足够的声誉来添加评论,但是,console.log 输出什么?我不希望它包含更新的状态值,因为 setState 不会立即发生。它是批量反应的。因此,如果您在调用它的地方调用它,您将不会在下面的行中获得 this.state.area 的预期值。
new URLSearchParams({ input: this.state.area }).toString(),
而不是上面的,试试这个,
new URLSearchParams({ input: e.target.value }).toString(),
推荐阅读
- python - 如何使用套接字将元组列表从服务器发送到客户端?
- javascript - 事件在 JS 中被多次跟踪
- javascript - 我想用 Vue.js 在图像上创建一个 v-for 循环
- spring-boot - Spring-AMQP - 基于消息头的路由
- ruby-on-rails - Rails for 循环在第一次迭代后退出
- python-3.x - 使用 fancyimpute 对测试集进行软估算
- typescript - 同一类型的多个字段的接口
- python - 如何将随机键值对传递给 Python 中的函数/构造函数?
- mysql - 在配置文件 MySQL 8 中设置 LOCAL_INFILE
- swift - UIImage 未从 AWS S3 url 加载