如何从 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)
}
我正在开发一个使用 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)
}