export default Object.freeze({
fetchReseller: ({ offset, limit }) => ({
type: FETCH_RESELLER,
payload: { offset, limit },
}),
// deleteReseller: ... etc
})
如何仅导入一种方法,例如fetchReseller
,
我不需要此Object.freeze中的所有内容。
从'./actions/Reseller'导入{fetchReseller}
没有工作
答案 0 :(得分:0)
不可能,因为您要导出整个对象。
导入类似
的语法import { fetchReseller } from './actions/Reseller'
在命名导出的情况下有效:
export const fetchReseller = ...
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export#Description
答案 1 :(得分:0)
export const fetchReseller = arg=> ({ type: "TYPE", payload:{arg} });
export default Object.freeze({
fetchReseller,
// deleteReseller: ... etc
});
答案 2 :(得分:0)
除非您将代码重构为建议的@hsz模式,否则我认为您不能这样做。如果您不想重构,可以使用解构技术:
import theWholeObject from './actions/Reseller';
const { fetchReseller } = theWholeObject;
然后您可以使用fetchReseller()
函数。
优势:
Babel将从该对象中提取该函数并将其存储在const中。如果您使用的是webpack(特别是webpack v4),则名为TreeShaking (or uglify)
的进程将从模块中删除其余对象。因此,捆绑的文件将仅具有fetchReseller函数,因此文件大小根本不会增加。
您可以在大括号中用逗号分隔多个方法,以导入多个方法。
const { fetchReseller, anotherMethod } = theWholeObject;
请记住,@ hsz建议的模式是行业标准。也就是说,您应该分别一个一个地导出操作。
export const methodOne = () => {}
export const methodTwo = () => {}
export const methodThree = () => {}