首页 > 解决方案 > 在 Redux reducer 中访问全局状态?

问题描述

如何从减速器访问全局状态?

目前在我的操作文件中,我有这个功能,许多功能需要 userId:

export const getMyUserData = (userId) => (dispatch) => {
  dispatch(fetchingData()); 
  accessing(`api/${userId}`, (res) => {
    fetchComplete(res);
  });
};

而不是传递 Id 值。

const Id = useSelector(state => state.auth.userId)
export const getMyUserData = () => (dispatch) => {
};

这是访问全局状态的正确方法吗?

标签: reactjsreduxreact-redux

解决方案


您可以使用传递给 thunk 的第二个参数访问当前状态。

像这样

const getUserId = state => state.auth.userId

export const getMyUserData = () => (dispatch, getState) => {
  const userId = getUserId(getState())

  dispatch(fetchingData()); 

  accessing(`api/${userId}`, (res) => {
    fetchComplete(res);
  });
};

推荐阅读