在我的 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 中插入此项?
答案 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 用于类组件)