Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.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挂钩访问我的redux应用程序的状态_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 使用redux挂钩访问我的redux应用程序的状态

Javascript 使用redux挂钩访问我的redux应用程序的状态,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,我正在使用钩子将我的组件从类组件迁移到功能组件。我需要在状态挂载时触发一个操作,通过useSelector访问状态。以下是我到目前为止的情况。我做错了什么?另外,当我将用户登录到控制台时,我会得到整个初始状态,即{isUpdated:false,users:{}而不仅仅是用户 reducers.js const initialState = { isUpdated: false, users: {}, }; const generateUsersObject = array =

我正在使用钩子将我的组件从类组件迁移到功能组件。我需要在状态挂载时触发一个操作,通过
useSelector
访问状态。以下是我到目前为止的情况。我做错了什么?另外,当我将
用户
登录到控制台时,我会得到整个初始状态,即
{isUpdated:false,users:{}而不仅仅是
用户

reducers.js

const initialState = {
    isUpdated: false,
    users: {},
};

const generateUsersObject = array => array.reduce((obj, item) => {
    const { id } = item;
    obj[id] = item;
    return obj;
}, {});

export default (state = { ...initialState }, action) => {
    switch (action.type) {
        case UPDATE_USERS_LIST: {
            return {
                ...state,
                users: generateUsersObject(dataSource),
            };
        }
        //...
        default:
            return state;
    }
};
action.js

export const updateUsersList = () => ({
    type: UPDATE_USERS_LIST,
});
我正在使用的组件挂钩

    const users = useSelector(state => state.users);    
    const isUpdated = useSelector(state => state.isUpdated);
    const dispatch = useDispatch();

    useEffect(() => {
        const { updateUsersList } = actions;
        dispatch(updateUsersList());
    }, []);

首先,如果索引/存储等也将被复制,那么将更容易提供帮助。(你用过图恩吗?)

第二,你的行动小姐“派遣”魔术字-



强烈建议使用{try}语法包装此代码,并在发生错误时能够捕获错误

第三,它可能有助于解决console.log(users)错误-

在减速器处不需要{…}



应该足够了。这条线只是这家商店的第一批货

我不明白{dataSource}来自哪里

export const updateUsersList = () =>
      return (dispatch, getState) => dispatch({
       type: UPDATE_USERS_LIST
  });
state = intialState