使用一个文本输入在Axios的服务器端搜索多个参数

时间:2019-05-31 14:07:01

标签: javascript reactjs axios

我希望能够仅使用一个文本字段在Axios get请求中搜索多个参数。

现在,我已经为过滤器创建了一个数组状态,并在输入值上使用split方法创建了一个数组,但此后我陷入了困境。我无法使搜索足够灵活。

这是API调用

export const fetchData = (id, filtered, pageSize, page, sortBy) => {
    let searchQueryParamString = "ID=" + id.toUpperCase() +
        "&parameter1=" + getFilterValue(filtered[0]) + 
        "&parameter2=" + getFilterValue(filtered[1]) + 
        "&parameter3=" + getFilterValue(filtered[2]) +
        "&PageSize=" + pageSize +
        "&PageNumber=" + 0 +
        "&SortBy=" + sortBy;

    return axios.get(endpointUrl + searchQueryParamString, config).then(
        response => {
            return response.data;
        }
    ).catch(error => { return null; });
}

const getFilterValue = (filtered) => {
    let filterValue = null;
    if(filtered != null) {
        filterValue = filtered;
    }
    return filterValue != null ? filterValue : '';
}

这是我的搜索输入和获取数据的代码

fetchData = (state) => {
     this.setState({ loading: true });
     this.requestData(state.pageSize, state.page, state.filter, state.sorted).then(
         res => {
             this.setState({ data: res.rows, pages: res.pages, selectedRow: 0, loading: false });
         }
     );
}
handleSearch = (e) => {
    const filter = e.target.value.split(' ');
    this.setState({ filter }, this.fetchData());
}

我想要的是能够搜索这三个参数的任意组合,值得一提的是,数据显示在Ant Design Table中,而且我也无权访问后端。

0 个答案:

没有答案