反应导出常量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

我不明白为什么以下方法不起作用:

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';

也许有人有一些想法?

提问于
用户回答回答于

你的第一种方法叫做a default export。它不起作用,因为您使用的语法不正确。

MDN export条目,你是这样写的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

希望能帮助到你。

用户回答回答于

出口不是这样的。您可以尝试以下方法:

import allConstants from '../constants';

然后使用常量,如:

allConstants.LOGIN_REQUEST

扫码关注云+社区

领取腾讯云代金券