【问题标题】:Query Params getting lost with Redux-Persist and React-Router-Redux使用 Redux-Persist 和 React-Router-Redux 丢失查询参数
【发布时间】:2018-07-06 07:43:24
【问题描述】:

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

【问题讨论】:

    标签: redux react-router react-redux react-router-redux redux-persist


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我相信我的问题出在 redux-persist 虽然@iamcaleberic。我在 v3.2.0 上,我可以看到它在我的记录器中被解析(参考上面的截图)。问题是我无法让 redux-persist 将路由减速器列入黑名单。
      猜你喜欢
      • 2019-07-12
      • 2018-06-06
      • 2017-09-08
      • 2019-08-10
      • 2020-07-12
      • 2018-05-23
      • 2017-09-20
      • 1970-01-01
      • 2018-03-05
      相关资源
      最近更新 更多