我不明白为什么下面的方法不起作用:
constants.js
import { createConstants } from '../utils';
export default createConstants(
'LOGIN_REQUEST',
'LOGIN_SUCCESS',
'LOGIN_FAILURE',
'LOGOUT',
'FETCH_DATA_REQUEST',
'RECEIVE_DATA'
);
utils.js
import React from 'react';
export function createConstants(...constants) {
return constants.reduce((acc, constant) => {
acc[constant] = constant;
return acc;
}, {});
}
接下来,我想导入LOGIN_REQUEST,例如作为redux操作。
import { LOGIN_REQUEST, LOGIN_SUCCESS, LOGIN_FAILURE, LOGOUT } from '../constants';
但是对于所有导入的常量,我每次都会得到undefined
。只有当我这样定义时,它才能起作用:
export const LOGIN_REQUEST = 'LOGIN_REQUEST';
也许有人有什么想法?
发布于 2017-04-26 16:59:26
您的第一种方法称为default export
。它不能工作,因为您使用的语法不正确。
在MDN export
entry中,这就是编写default export
的方式
// module "my-module.js"
export default function cube(x) {
return x * x * x;
}
您的第二种方法称为named export
,它之所以有效,是因为它具有正确的语法。同样来自MDN:
export const foo = Math.sqrt(2); // exports a constant
希望能有所帮助。
发布于 2017-04-26 16:43:13
导出不是这样工作的。您可以尝试执行以下操作:
import allConstants from '../constants';
然后使用一个常量,比如:
allConstants.LOGIN_REQUEST
https://stackoverflow.com/questions/43628656
复制相似问题