我希望能够仅使用一个文本字段在Axios get请求中搜索多个参数。
现在,我已经为过滤器创建了一个数组状态,并在输入值上使用split方法创建了一个数组,但此后我陷入了困境。我无法使搜索足够灵活。
这是API调用
export const fetchData = (id, filtered, pageSize, page, sortBy) => {
let searchQueryParamString = "ID=" + id.toUpperCase() +
"¶meter1=" + getFilterValue(filtered[0]) +
"¶meter2=" + getFilterValue(filtered[1]) +
"¶meter3=" + 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中,而且我也无权访问后端。