反应导出常量

React export constants

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

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

也许有人有一些想法?

导出不是这样的。您可以尝试类似的操作:

import allConstants from '../constants';

然后使用常量luke:

allConstants.LOGIN_REQUEST

您的第一种方法称为 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

希望对您有所帮助。