基于用户在搜索栏中输入的不同查询参数

时间:2019-05-01 19:19:21

标签: ajax reactjs postgresql

我有一个搜索栏,用户可以在其中输入州,城市或邮政编码,并返回结果列表。我所有的数据都来自我自己的数据集,这些数据集分为location_state,location_city和location_zip_code列。 如果我将查询硬编码到提取请求中,就可以使用户仅搜索一个值:

`http://localhost:8000/api/results?location_city=${this.state.searchTerm}` 

但是,我不确定如何使查询根据用户键入的内容而变化。因此,如果用户键入邮政编码,则查询必须为location_zip_code=或输入一个状态,它必须为location_state=

我尝试用参数等于搜索词的对象制作对象,但是正如您可以想象的那样,它会将所有这些参数添加到URL中,这是我所不希望的。到目前为止,这是我无法执行的操作:

  fetchApi(method = 'GET', apiBody ) {
    const params = {
      location_city: this.state.searchTerm,
      location_state: this.state.searchTerm,
      location_zip_code: this.state.searchTerm,
    };
    const urlParams = new URLSearchParams(Object.entries(params));

    fetch('http://localhost:8000/api/results?' + urlParams + `=${this.state.searchTerm}`, {
      method: method,
      headers: {
        'content-type': 'application/json'
      },
// rest of code that isn't relevant. 

我完全不知道该怎么做。有人可以帮我吗?

0 个答案:

没有答案