我正在尝试在react本机应用程序中设置redux持久化。
但是我遇到了这个错误:
安慰错误:“redux persist无法创建同步存储。正在退回到“noop”存储
我试图在"src/redux/index.js"中将存储从存储更改为Asyncstore,但它仍然遇到相同的错误:
import AsyncStorage from '@react-native-community/async-storage';
const config = {
key: "root",
storage: AsyncStorage // Attempted to fix it (but failed)
// storage // old code
};
这是其他代码:
应用程序内。js:
import React, { Component } from "react";
import { Provider } from "react-redux";
import { persistStore } from "redux-persist";
import { PersistGate } from "redux-persist/es/integration/react";
import store from "@store/configureStore";
import Router from "./src/Router";
export default class ReduxWrapper extends Component {
render() {
const persistor = persistStore(store);
return (
<Provider store={store}>
<PersistGate persistor={persistor}>
<Router />
</PersistGate>
</Provider>
);
}
}
在configureStore中。js:
import { applyMiddleware, compose, createStore } from "redux";
import thunk from "redux-thunk";
import reducers from "@redux";
const middleware = [
thunk,
// more middleware
];
const configureStore = () => {
let store = null;
store = compose(applyMiddleware(...middleware))(createStore)(reducers);
return store;
};
export default configureStore();
在/src/redux/index中。js
import { persistCombineReducers } from "redux-persist";
import storage from "redux-persist/es/storage";
import { reducer as NetInfoReducer } from "./NetInfoRedux";
import { reducer as UserRedux } from "./UserRedux";
const config = {
key: "root",
storage,
};
export default persistCombineReducers(config, {
netInfo: NetInfoReducer,
user: UserRedux,
}
在Router.js
import React from "react";
import NetInfo from "@react-native-community/netinfo/lib/commonjs";
import { Config, AppConfig, Device, Styles, Theme, withTheme } from "@common";
import { AppIntro } from "@components";
import { connect } from "react-redux";
class Router extends React.PureComponent {
constructor(props){
super(props)
this.state = {
loading: true,
};
}
componentWillMount() {
NetInfo.getConnectionInfo().then((connectionInfo) => {
this.props.updateConnectionStatus(connectionInfo.type != "none");
this.setState({ loading: false });
});
}
render() {
return <AppIntro />;
}
}
export default withTheme(
connect(
// mapStateToProps,
// mapDispatchToProps
)(Router)
);
更新:
根据mychar建议:github解决了错误。com/rt2zz/redux persist/issues/1080:
1) npm安装--保存@react本机社区/异步存储
2)iOS,记得在iOS文件夹中执行pod安装
3) 将存储更改为异步存储
old code => import storage from 'redux-persist/lib/storage';
new code => import AsyncStorage from '@react-native-community/async-storage';
old code =>
const persistConfig = {
//...
storage,
}
new code =>
const persistConfig = {
//...
storage: AsyncStorage,
}
但是,仍然收到以下警告:
我面临着同样的问题,即使我用Asyncstore替换了存储。
我通过删除原始存储的导入行解决了这个问题
import storage from "redux-persist/es/storage"; //remove this
在redux持久化之前
v6。0.0您使用的存储方式如下:
import storage from 'redux-persist/lib/storage';
它在后台使用的是AsyncStorage
,它位于react native
core中。
由于react native
已弃用AsyncStorage
并将其从react native
核心中删除,因此新版本的redux persist
已停止使用它,这似乎是一个不错的决定。
您现在可以做同样的事情,但是从社区版本导入Asyncstore。
import AsyncStorage from '@react-native-community/async-storage';
然后在配置中使用in:
const persistConfig = {
storage: AsyncStorage,
//other configurations
};
降级到redux persist
v5并不是一个稳定的解决方案,因为它使用核心react native
的异步存储,并且react native
将在即将发布的版本中完全删除它。
另外,我在评论中读到您不喜欢AsyncStorage
,并且我解释了redux persist
一直将其用作存储,所以现在唯一的区别是您应该从社区版本而不是从react native
核心获得它
在redux persist v6中,您可以尝试进行如下更改:
旧配置V5=
import storage from 'redux-persist/lib/storage';
const persistConfig = {
//...
storage,
}
新的配置v6=
第一个添加:yarn add@react-nate-async-存储/async-存储
import AsyncStorage from '@react-native-async-storage/async-storage';
const persistConfig = {
//...
storage: AsyncStorage,
}
问题内容: 关闭redis服务器后,使用set存储的值被破坏,在这里我找到了使用持久性存储的方法,有人帮助我,如何使用javascript实现它? 我想将来自客户端的一些值存储在redis db中,并且必须在其他客户端中使用该值。 问题答案: 您需要配置Redis服务器以支持持久性机制。此配置存储在文件中,该文件在redis-server命令行上作为参数给出。 这是Redis 2.4的默认文件:h
本平台是通过storageclass来动态创建PV。也就是说咱们依赖于storageclass,如果您的Kubernetes不支持相应的存储试,将无法非常方便的进行挂载。 目前暂不支持挂载多个PVC,或许以后会更新吧。 这里演示的是用的NFS进行演示,实际使用时可根据自己的需求配置相应的provisioner,其他配置是一样的不需要调整,只需要在“模版管理” 调整StorageClass和Pers
本文向大家介绍Flutter持久化存储之数据库存储(sqflite)详解,包括了Flutter持久化存储之数据库存储(sqflite)详解的使用技巧和注意事项,需要的朋友参考一下 前言 数据库存储是我们常用的存储方式之一,对大批量数据有增、删、改、查操作需求时,我们就会想到使用数据库,Flutter中提供了一个sqflite插件供我们用于大量数据执行CRUD操作。本篇我们就来一起学习sqflite
最近我发现了一个像Apache Mesos这样的东西。 在所有演示和示例中,这一切看起来都令人惊讶。我可以很容易地想象一个人将如何竞选无状态的工作--这自然符合整个想法。 3-请告诉我的方法在哲学方面是否是错误的(数据服务器的DFS和Mesos顶部的postgres之类的服务器的某种切换) 问题主要是从Apache Mesos的持久存储中复制的,由程序员堆栈交换上的zerkms提出。
本地持久化卷允许用户通过标准 PVC 接口以简单便携的方式访问本地存储。PV 中包含系统用于将 Pod 安排到正确节点的节点亲和性信息。 一旦配置了本地卷,外部静态配置器(provisioner)可用于帮助简化本地存储管理。请注意,本地存储配置器与大多数配置器不同,并且尚不支持动态配置。相反,它要求管理员预先配置每个节点上的本地卷,并且这些卷应该是: Filesystem volumeMode(默
持久化存储的相关配置 这里使用的是NFS的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。 $ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml $ kubectl apply -f install/kubernetes/storage/rbac.yaml $ kubectl apply -f install/