如何从 redux 中的对象中获取先前存储的内容

How to get previous stored from an an object in redux

我正在开发一个使用 react 前端和 redux 状态管理的应用程序。

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

获取用户在场的当前状态

然而我的问题是如何获取存储在 userStatus 对象中的 previous 值。

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" }

我怎样才能得到这个以前的状态

更新 redux 中的状态后,使用 useEffect 更改该 redux 状态并将该状态保存在某个本地状态中。在这种情况下,每当 redux 状态更新时,您都会将以前的状态存储在 local

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)
}