0

我正在尝试获取从通过查询参数发送的 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()
4

2 回答 2

1

如果其他人遇到类似的问题 - 我明白了。我正确地将我的路由减速器列入黑名单,但我需要清除持久性。在我实施黑名单之前,这家商店就变得很糟糕。

于 2018-01-27T14:45:00.520 回答
0

如果您有任何机会更新或正在使用 react-router v4,那么我在解析回调字符串时遇到了类似的问题 a facebookl url 在我的情况下是因为我更新到 react-router v4,他们停止解析查询字符串但有一个数字库来处理这个问题,我使用查询字符串来解决这个问题

您可以在同一位置检查 github 问题: https ://github.com/ReactTraining/react-router/issues/4410

于 2018-01-26T23:19:30.270 回答