React redux - 动作
React redux - actions
最近在尝试redux,看到一个非常好的文件夹结构项目,我试图弄到相同的结构,但是同样的方法不行...
例如我有一个类似这样的路径:./src/_actions 并且在这个文件夹中我有“user.actions.js”、“alert.actions.js”、“index.js”。
在 alert.actions.js 我有类似的东西:
import { alertConstants } from "../_constants/alert.constants";
export const alertActions = {
success,
error,
clear,
};
function success(message) {
return { type: alertConstants.SUCCESS, message };
}
function error(message) {
return { type: alertConstants.ERROR, message };
}
function clear() {
return { type: alertConstants.CLEAR };
}
而且我很想将它们全部从一个地方导入到路径为“./../test.js”的文件夹:
import {alertActions} from "./../_actions";
import {useDispatch} from "react-redux";
export const test = () => {
const dispatch = useDispatch();
return (
<button onClick={() => dispatch(alertActions.success("test"))}> Click </button>
)
}
但我得到类似“alertActions.success”的未定义信息。我不知道我做错了什么。在那个项目中,index.js 也为空...该对象应该导出所有功能..有人知道任何解决方案吗? :(
函数制作完成后需要导出对象。通常它们会被提升,但在这种情况下,您可能正在使用严格模式,而它们却没有。您必须移动导出对象或更好地单独导出所有这些对象,然后在导入它们时您应该写:
import * as alertActions from 'youfile'
如果您想导出整个对象,您应该将其导出为:
export default alertActions
然后您需要像这样导入它们:
import alertActions from 'yourfile'
并访问它们:
alrtActions.error()
最近在尝试redux,看到一个非常好的文件夹结构项目,我试图弄到相同的结构,但是同样的方法不行...
例如我有一个类似这样的路径:./src/_actions 并且在这个文件夹中我有“user.actions.js”、“alert.actions.js”、“index.js”。
在 alert.actions.js 我有类似的东西:
import { alertConstants } from "../_constants/alert.constants";
export const alertActions = {
success,
error,
clear,
};
function success(message) {
return { type: alertConstants.SUCCESS, message };
}
function error(message) {
return { type: alertConstants.ERROR, message };
}
function clear() {
return { type: alertConstants.CLEAR };
}
而且我很想将它们全部从一个地方导入到路径为“./../test.js”的文件夹:
import {alertActions} from "./../_actions";
import {useDispatch} from "react-redux";
export const test = () => {
const dispatch = useDispatch();
return (
<button onClick={() => dispatch(alertActions.success("test"))}> Click </button>
)
}
但我得到类似“alertActions.success”的未定义信息。我不知道我做错了什么。在那个项目中,index.js 也为空...该对象应该导出所有功能..有人知道任何解决方案吗? :(
函数制作完成后需要导出对象。通常它们会被提升,但在这种情况下,您可能正在使用严格模式,而它们却没有。您必须移动导出对象或更好地单独导出所有这些对象,然后在导入它们时您应该写:
import * as alertActions from 'youfile'
如果您想导出整个对象,您应该将其导出为:
export default alertActions
然后您需要像这样导入它们:
import alertActions from 'yourfile'
并访问它们:
alrtActions.error()