#reactjs #axios #react-router
Вопрос:
Я относительно новичок в React. Я использую инструмент axios-auth-refresh в https://www.npmjs.com/package/axios-auth-refresh , хотя проблема не относится конкретно к этому. Я хочу иметь возможность обрабатывать случай, когда срок действия токена обновления истек. В этом случае я хочу перенаправить на страницу входа в систему, а затем, после повторной аутентификации пользователя, направить их обратно на страницу, на которой они были изначально. Поскольку код axios не является частью компонента, я не могу понять, как получить доступ к текущей странице, чтобы я мог ее сохранить.
Я обнаружил, что могу добавлять пользовательские элементы конфигурации в вызов axios, чтобы я мог кодировать axios.post(url, {'currentPage' : '/myCurrentUrl'})
. Но это требует от меня кодирования этой конфигурации для каждого вызова axios. Я хочу иметь возможность вызывать axios (или вызывать какую-либо функцию, вызывающую Axios), которая может определить, с какого URL страницы она была вызвана.
Есть ли какой-нибудь способ сделать это?
Ответ №1:
В ваших реквизитах по умолчанию для компонента в маршрутизаторе у вас есть доступ к location
объекту. Вы можете передать местоположение вызову axios следующим образом:
axios.post(url, {'currentPage': props.location.pathname})