Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在以不同用户身份登录后更改Redux持久化数据_Javascript_React Native_Redux_React Redux_Redux Persist - Fatal编程技术网

Javascript 如何在以不同用户身份登录后更改Redux持久化数据

Javascript 如何在以不同用户身份登录后更改Redux持久化数据,javascript,react-native,redux,react-redux,redux-persist,Javascript,React Native,Redux,React Redux,Redux Persist,因此,我正在开发一个React原生应用程序,在我的应用程序商店中,我坚持使用ratedPosts来保存用户的评级帖子信息 (获取此信息的另一种方法是迭代每篇文章的额定用户列表,因为这种方法会消耗我提出的此解决方案的更多性能) redux商店 然而,我刚刚注意到,在我以不同的用户身份登录到我的应用程序后,持久化数据仍然加载,这通常是我应该预料到的。是否有方法更改不同用户的持久数据?就像我以user1身份登录后一样,加载此数据,而对于user2ratedPosts,则为空 store.js 在用户

因此,我正在开发一个React原生应用程序,在我的应用程序商店中,我坚持使用
ratedPosts
来保存用户的评级帖子信息

(获取此信息的另一种方法是迭代每篇文章的额定用户列表,因为这种方法会消耗我提出的此解决方案的更多性能)

redux商店

然而,我刚刚注意到,在我以不同的用户身份登录到我的应用程序后,持久化数据仍然加载,这通常是我应该预料到的。是否有方法更改不同用户的持久数据?就像我以
user1
身份登录后一样,加载此数据,而对于
user2
ratedPosts,则为空

store.js
在用户更改事件中,您的应用程序应:

  • 操作:分派用户\u更改的操作
  • 缩减器:ratedPosts:{},addedPosts:{}

  • 持久化数据将同步并相应更改

    ,但这种方式不会在每次用户更改时重置
    ratedPosts
    addedPosts
    ?所以,第一次添加的数据在作为
    user1
    登录后不会返回。但这种方式不会在每次用户更改时重置ratedPosts和addedPosts吗?是,如果用户发生变化,您希望保留哪些数据?
    import { createStore, applyMiddleware } from 'redux'
    import { composeWithDevTools } from 'redux-devtools-extension'
    import { persistStore, persistReducer } from 'redux-persist'
    import AsyncStorage from '@react-native-community/async-storage'
    import thunk from 'redux-thunk'
    
    import rootReducer from './src/reducers'
    
    const initialState = {}
    
    const middleware = [thunk]
    
    const persistConfig = {
        key: 'root',
        storage: AsyncStorage,
        whitelist: [
            'ratedPosts',
            'addedPosts'
        ],
        timeout: 0
    }
    
    const persistedReducer = persistReducer(persistConfig, rootReducer)
    
    const store = createStore(
        persistedReducer,
        initialState,
        composeWithDevTools(applyMiddleware(...middleware))
    )
    
    const persistor = persistStore(store)
    
    export { store, persistor }