如何在redux中从一个对象中获取先前存储



我正在开发一个应用程序,它使用react作为前端,redux用于状态管理。

在这个应用程序中我有一个reducer,存储用户的当前状态的存在。所以无论用户是在线还是离线。我正在使用useSelector hook获取用户的当前状态。

我的问题是如何获得以前的值存储在userStatus对象。

reducer.js

import * as actionTypes from "../actions/types";
import { combineReducers } from "redux";
const initialState = {

userStatus: { value: "unavailable", label: "Offline" },
};
const user_reducer = (state = initialState, action) => {
switch (action.type) {

case actionTypes.SET_USER_STATUS:
return {
...state,
userStatus: action.payload,
};

default: {
return state;
}
}
};
const rootReducer = combineReducers({
user: user_reducer,

});
export default rootReducer;

//获取用户当前状态

const userPresence = useSelector((state) => state.user.userStatus);

的例子:

current State `userStatus: { value: "unavailable", label: "Offline" }`
previous state userStatus: { value: "available", label: "Online" }

我怎样才能得到之前的状态

在回家的更新状态后,使用useEffect回来的状态变化和保存状态在一些当地的状态。在这种情况下,当redux状态更新时,将把以前的状态存储在本地

function Component(props){
const userPresence = useSelector((state) => state.user.userStatus);
const [userLocal, setUserLocal] = useState(null) 
useEffect(()=>{
// here you have access to previous state(userLocal) and current 
// state(userPresence) 
setUserLocal(userPresence) 
},userPresence)
}

最新更新