标签: redux-persist

SyntaxError:使用Jest导入意外的令牌

我正在尝试使用redux-persist在我的react-native项目中设置一个jest快照测试.我不认为它是es2015导入问题,因为我的测试代码看起来像这样:

import React from "react"


import "react-native"



// Note: test renderer must be required after react-native.


import renderer from "react-test-renderer"



import App from "../App"



it("renders correctly", () => {
const app = renderer.create(<App />).toJSON()
expect(app).toMatchSnapshot()


})
Run Code Online (Sandbox Code Playgroud)

在我添加之前我运行了完全相同的测试redux-persist并且它正在工作.

jest引发的错误:

●测试套件无法运行

/Users/a_050313/Documents/dev/scheduling/node_modules/redux-persist/es/integration/react.js:9
import React, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved
^^^^^^

SyntaxError: Unexpected token import

  1 | import React, { Component } from "react"
  2 | import { Provider } from "react-redux"
> 3 | import { PersistGate …
Run Code Online (Sandbox Code Playgroud)

reactjs jest react-native redux-persist

4
推荐指数
1
解决办法
1万
查看次数

如何以最简单的方式持久化 redux 状态?

刷新我的网站后,我需要在 Redux 中保持状态。什么是最简单的方法来做到这一点?如果可能的话,我宁愿不希望使用 redux-persist。

javascript reactjs redux react-redux redux-persist

4
推荐指数
1
解决办法
3291
查看次数

如何使用带有 redux-persist 的 React 工具包清除任何持久状态

在官方文档中,它说添加一个额外的减速器以清除当前切片的状态,但是到处都没有明确的示例

import { PURGE } from "redux-persist";

extraReducers: (builder) => {
  builder.addCase(PURGE, (state) => {
    customEntityAdapter.removeAll(state);
  });
}
Run Code Online (Sandbox Code Playgroud)

如何导入或从哪里获取customEntityAdapter,当我调用persistorObjectthen purge 时,它​​显示错误,任何人都可以给我一些说明,谢谢我很欣赏 redux-toolkit 和https://redux-toolkit.js.org的清晰示例/usage/usage-guide#use-with-redux-persist

reactjs redux-persist redux-toolkit

4
推荐指数
1
解决办法
1万
查看次数

如何在 redux-persist v5 中使用白名单?

我尝试在 redux-persist v5 中使用白名单。

我在 Stack Overflow 上关注了这个答案,如下所示

persistStore(store, { whitelist: ['messages'] });
Run Code Online (Sandbox Code Playgroud)

但是,我收到了错误

传递给 persistStore 的选项无效:“白名单”。您可能错误地将 persistConfig 传递到 persistStore 中,而它应该传递到 persistReducer 中。

然后我在阅读 redux-persist 自述文件后尝试了类似下面的内容

const transform = createTransform(null, null, {
  whitelist: [
    'messages'
  ]
});

const config = {
  key: 'state',
  storage: localForage,
  transforms: [transform]
};

const reducer = persistReducer(config, rootReducer);
Run Code Online (Sandbox Code Playgroud)

但这不起作用。它仍然通过 localForage 保存所有内容。

那么在 redux-persist v5 中使用白名单的正确方法是什么?

javascript reactjs redux react-redux redux-persist

3
推荐指数
1
解决办法
2万
查看次数

将 redux-persist 与 redux-immutable 结合使用时出错

我尝试将redux-immutableredux-persist一起使用。

我进行了很多搜索,但没有找到任何解决方案来解决这个问题。

商店.js:

import { createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from 'remote-redux-devtools';
import logger from 'redux-logger';
import { createEpicMiddleware } from 'redux-observable';
import immutableTransform from 'redux-persist-transform-immutable';
import { persistStore, persistReducer } from 'redux-persist';
import { combineReducers } from 'redux-immutable';
import { Map } from 'immutable';
import { routerReducer } from 'react-router-redux';
import storage from 'redux-persist/lib/storage';
import createFilter from 'redux-persist-transform-filter';
import epics from './epics';
import reducers from './reducers';

const middlewares = [createEpicMiddleware(epics), logger];
const …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux redux-persist redux-immutable

3
推荐指数
1
解决办法
3628
查看次数

redux-persist 中 autoReHydrau 的用途是什么?为什么在 v5 中将其删除?

我在ReduxPersist的 GitHub 页面上找不到任何内容

我有一段代码正在尝试理解,由于该autoRehydrate代码已被删除,我想知道应该如何使用redux-persist.

import { AsyncStorage } from 'react-native';
import { applyMiddleware, createStore } from 'redux';
import { autoRehydrate, persistStore } from 'redux-persist'
import thunk from 'redux-thunk';
import reducers from '../reducers';

const middleWare = [thunk];

const createStoreWithMiddleware = applyMiddleware(...middleWare)(createStore);

 export default configureStore = (onComplete) => {
  const store = autoRehydrate()(createStoreWithMiddleware)(reducers);
  persistStore(store, { storage: AsyncStorage }, onComplete);

  return store;
};
Run Code Online (Sandbox Code Playgroud)

我找到了一些教程,但它只是说这个autoRehydrate必须存在,但没有解释它实际上是做什么的。

javascript reactjs react-native redux redux-persist

3
推荐指数
1
解决办法
5910
查看次数

使用 ReactNative + Redux-persist V 5.10 时出现错误

使用 ReactNative + Redux-persist 5.10 时出现错误 - console.error:“redux-persist:超时后调用的“root”补水。

react-native redux-persist

3
推荐指数
1
解决办法
3490
查看次数

redux-persist/createPersistoid:错误序列化状态 TypeError:将循环结构转换为 JSON

我正在尝试将 redux-persist 集成到我的 react-native 项目中。目的是在应用程序重新启动之间保留 redux 存储的数据,以便用户无需在每次启动应用程序时登录。另外,我想将以前查看的数据存储在本地存储上,以避免每次重新启动应用程序时重新查询所有数据。

我按照下面的代码添加了 redux 持久支持:

import { AsyncStorage } from 'react-native';
import { createStore, applyMiddleware } from 'redux';
//import { createLogger } from 'redux-logger';
import { persistStore, persistReducer } from 'redux-persist';
import rootReducer from '../reducers/index';
import ReduxThunk from 'redux-thunk';
import { createTransform } from 'redux-persist';
import JSOG from 'jsog';

export const JSOGTransform = createTransform(
    (inboundState, key) => JSOG.encode(inboundState),
    (outboundState, key) => JSOG.decode(outboundState),
)

const persistConfig = {
    // Root
    key: 'root',
    // Storage Method (React …
Run Code Online (Sandbox Code Playgroud)

react-native redux google-cloud-firestore redux-persist

3
推荐指数
1
解决办法
3333
查看次数

如何为嵌套状态创建 redux-persist 黑名单?

这是我的persistConfig和代码store,我想添加blacklistfor tracking,但不是为所有跟踪状态,而只是为tracking.checkingOut, tracking.checkingInand tracking.searching,如何正确执行此操作?我知道如果我想完全删除跟踪,我需要在blacklist: ['tracking']inside 中写入persistConfig,但我不确定在嵌套状态的情况下该怎么做。

const persistConfig = {
    key: 'root',
    storage: AsyncStorage,
  }

const persistedReducer = persistReducer(persistConfig, reducers)

const createStoreWithMiddleware = applyMiddleware(thunkMiddleware)(createStore);

export const store = createStoreWithMiddleware(persistedReducer);

export const persistor = persistStore(store);
Run Code Online (Sandbox Code Playgroud)

如果我像这样添加黑名单: blacklist: ['tracking.checkingOut', 'tracking.checkingIn', 'tracking.searching'] 会起作用吗?或者应该有不同的方法?

reactjs react-native redux-persist

3
推荐指数
1
解决办法
7456
查看次数

如何在 redux-toolkit 中使用 persist/re一线?

我已经按照文档中的建议使用react-toolkit设置了redux-persist。现在我需要进行一些补液操作,我该怎么做?这是我尝试过但不起作用的。

...
import { REHYDRATE } from 'redux-persist'
...

const accessControl = createSlice({
  name: 'accessControl',
  initialState,
  reducers: {
    loginStart(state: AccessControlState) {
      state.isLoading = true
    },
    loginSucces(state: AccessControlState, action: PayloadAction<LoginResponsePayload>) {
      state.isAuthenticated = true
      state.token = action.payload.access_token
      state.isLoading = false
      state.error = null
    },
    loginFailed(state: AccessControlState, action: PayloadAction<string>) {
      state.isAuthenticated = false
      state.token = ''
      state.isLoading = false
      state.error = action.payload
    },
    logout(state: AccessControlState) {
      state.isAuthenticated = false
      state.token = ''
      state.isLoading = false
      state.error = null
    },
    [REHYDRATE]: (state: AccessControlState) …
Run Code Online (Sandbox Code Playgroud)

typescript redux redux-persist redux-toolkit

3
推荐指数
1
解决办法
4911
查看次数