Поиск на стороне сервера с помощью Axios нескольких параметров с использованием одного ввода текста - PullRequest
2 голосов
/ 31 мая 2019

Я хочу иметь возможность поиска по нескольким параметрам в запросе получения Axios, используя только одно текстовое поле.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...