Я хочу иметь возможность поиска по нескольким параметрам в запросе получения Axios, используя только одно текстовое поле.
Сейчас я создал состояние для фильтров в виде массива и использую метод 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, и я также нене имеет доступа к серверной части.