我如何在 React 组件之外访问 redux 存储?

时间:2021-06-24 19:33:54

标签: javascript reactjs redux react-redux

在我的 Store.js 文件中,我有该代码:

export const INSERIR_USUARIO = 'app/login/INSERIR_USUARIO';

export const INITIAL_STATE = {
  usuario: null,
};

export default function reducer(state = INITIAL_STATE, action = {}) {
  if (action.type === INSERIR_USUARIO) {
    return {
      ...state,
      usuario: action.payload,
    };
  }
  return state;
}

export const attUser = (usuario) => ({
  type: INSERIR_USUARIO,
  payload: usuario,
});

现在,在我的 login.js 文件中,我需要访问函数“attUser”。我导入了该函数,但不知道是否正在调用它。但是在 redux 中并没有节省

import { attUser } from './Store';
export const saveToken = () => {
  attUser({ name: 'a', age: '13' });
};

如何在 react 组件之外的 redux 中插入此项?

1 个答案:

答案 0 :(得分:2)

this.codeEditor = ace.edit(element, editorOptions);

export const attUser = (usuario) => ({ type: INSERIR_USUARIO, payload: usuario, }); 是一个动作创建者。它创建了一个描述要做什么的小对象,但除此之外不会引起任何实际更改。为了产生效果,你需要调度这个动作。您没有显示实际创建商店的行,但假设商店变量名为 attUser,您会这样做:

store

有关调度操作的更多信息,see this page


P.S:您特别询问了如何在 React 之外执行此操作,所以这就是我举的例子。如果一个 react 组件需要做这个分派,你应该使用 react-redux 中的技术(useDispatch 用于函数组件,mapDispatchToProps 用于类组件)