首页 > 解决方案 > 获取请求方法 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 个字符的输入类型进行搜索。

标签: javascriptreactjs

解决方案


没有足够的声誉来添加评论,但是,console.log 输出什么?我不希望它包含更新的状态值,因为 setState 不会立即发生。它是批量反应的。因此,如果您在调用它的地方调用它,您将不会在下面的行中获得 this.state.area 的预期值。

new URLSearchParams({ input: this.state.area }).toString(),

而不是上面的,试试这个,

new URLSearchParams({ input: e.target.value }).toString(),

推荐阅读