Недавно я столкнулся с проблемой с React Native и Redux при реализации OAuth, которая вызвала некоторую головную боль. Сценарий такой:
getAccessToken(), который всегда будет возвращать действительный токен доступа, и, если срок действия токенов истекает, он обновит их и обновит хранилище.Поток данных в Redux - строго однонаправленный, что означает, что пользователь вызывает создателя действия, который, в свою очередь, вызовет редуктор, который изменит состояние в хранилище, и компонент будет повторно отрисован с новым состоянием. Однако я не могу привязать состояние моего компонента к токену доступа; каждый раз, когда пользователь хочет сделать вызов Rest, он должен вызвать getAccessToken(), чтобы убедиться, что он получил действительный токен перед отправкой.
Любые предложения относительно того, как реализовать это с помощью React Native и Redux? Спасибо.





Как это сделать по-своему:
getAccessToken().then(token => myOtherCall(token))Как бы я это сделал:
Используя редукс-сага, я бы установил цикл, который обновляет токен каждые X секунд. Если запрос не выполняется из-за кода состояния 401, я бы обновил токен и повторил вызов api.
Можно отправлять несколько действий в создателе действий, используя redux-thunk github.com/reduxjs/redux-thunk
несколько действий, конечно. как насчет этого: {отправка ({...}); вернуть результат;}
В зависимости от вашего конкретного случая - да
Спасибо. Я обязательно загляну в redux-saga. Другой вопрос, будет ли это приемлемым подходом как к отправке, так и к возврату значения от создателя действия? Я не видел, чтобы это делалось раньше, и мне интересно, антипаттерн ли это. Спасибо.