Реактивная строка запроса неправильно форматируется

#reactjs #typescript #react-native #expo #query-string

#reactjs #typescript #react-native #выставка #строка запроса

Вопрос:

Я пытаюсь получить данные на основе запроса. Однако, если я передам запрос в свой вызов api и отформатирую строку запроса. Результат будет выглядеть следующим образом:

 Object {
  "DE": null,
  "limit": 10,
  "offset": 0,
}
 

При правильной настройке объект должен выглядеть следующим образом:

 Object {
  "query": "DE",
  "limit": 10,
  "offset": 0,
}
 

(Для демонстрации моей проблемы я установил значение по умолчанию для своего запроса). Мой вызов API выглядит следующим образом:

 export function thunkFetchOrders(
    query = 'DE',
    offset = 0,
    limit = 10,
    filters = {}
) {
    return async (dispatch: any) => {

        if (offset === 0) {
            dispatch(
                resetOrders()
            )
        }
    
        let requestParams = {
            offset,
            limit,
        }

        requestParams = {...requestParams, ...setFilter(filters)}

        if (query) {
            requestParams = {...requestParams, ...queryString.parse(query)}
        }

        try {
            const res = await axios.get(`/orders`, {params: requestParams})

            await dispatch(
                fetchOrders(
                    res.data,
                    limit,
                    offset,
                    filters
                )
            )    
        }
        catch (error) {
            await dispatch(thunkFetchError(error));
        }
    }
}
 

Что я здесь делаю не так?

Ответ №1:

Используйте эту библиотеку строк запросов, поскольку она обеспечивает как синтаксический анализ, так и stringify. https://github.com/sindresorhus/query-string