Параметры запроса теряются с Redux-Persist и React-Router-Redux

Я пытаюсь получить код аутентификации, отправленный из API, отправленного через параметры запроса:

http://example.com?code=AUTH_CODE

Однако, когда страница загружается, она перенаправляется на URL-адрес, а я работаю в React-Redux с Redux-Persist и React-Router-Redux. Я могу найти параметры запроса в предыдущем состоянии до "persist / REHYDRATE", но не могу заставить его оставить в действии редуктор маршрутизации. Я считаю, что Redux-Persist сохраняет маршрут и исключает параметры запроса. Вот как выглядит мой вывод регистратора:

Здесь можно увидеть параметры запроса

Я вижу параметры запроса в «предыдущем состоянии», где находится стрелка, но он ушел в «следующее состояние» ниже

введите описание изображения здесь

Я пробовал использовать черный список и redux-persist-transform-filter для маршрутизации черного списка, но безуспешно.

Вот как выглядит мой index.js:

import React from 'react';
import ReactDOM from 'react-dom';

import { Provider } from 'react-redux'
import { createStore, applyMiddleware, compose } from 'redux'
import registerServiceWorker from './registerServiceWorker';
import rootReducer from './reducers'
import { Router, browserHistory } from 'react-router'
import { syncHistoryWithStore } from 'react-router-redux'
import routes_design from './routes'

import { persistStore, persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'
import { PersistGate } from 'redux-persist/lib/integration/react'

const config = {
  key: 'root',
  storage
}

const reducer = persistReducer(config, rootReducer)

function configureStore () {
  let store = createStore(
    reducer,
    compose(...) // Middleware here removed for brevity
  )
  let persistor = persistStore(store)
  return { persistor, store }
}

const { persistor, store } = configureStore()

const history = syncHistoryWithStore(browserHistory, store)

ReactDOM.render(
   <Provider store={store}>
     <PersistGate loading={null} persistor={persistor}>
       <Router history={history} routes={routes_design}/>
     </PersistGate>
   </Provider>,
  document.getElementById('root')
)

registerServiceWorker()

person RedOster    schedule 26.01.2018    source источник


Ответы (2)


Если еще у кого-то возникнет подобная проблема - я понял. Я правильно заносил свой редуктор маршрутизации в черный список, но мне нужно было очистить персистор. Это было отстойно с магазином до того, как я ввел черный список.

person RedOster    schedule 27.01.2018

Если по какой-либо причине у вас есть обновление или вы используете response-router v4, тогда у меня была аналогичная проблема с анализом строки обратного вызова, URL-адрес facebookl в моем случае, потому что я обновился до response-router v4, в котором они прекратили синтаксический анализ строк запроса, но есть номер библиотек для решения этой проблемы я использовал строку запроса для решения этой проблемы.

Вы можете проверить проблему с github там же: https://github.com/ReactTraining/react-router/issues/4410

person iamcaleberic    schedule 26.01.2018
comment
Я считаю, что моя проблема связана с redux-persist, хотя @iamcaleberic. У меня v3.2.0, и я вижу, как он анализируется в моем регистраторе (см. Скриншоты выше). Проблема в том, что я не могу заставить redux-persist занести в черный список редуктор маршрутизации. - person RedOster; 27.01.2018