redux React导出常量

2ul0zpep  于 2023-06-06  发布在  React
关注(0)|答案(2)|浏览(176)

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

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

也许有人有一些想法。

hvvq6cgz

hvvq6cgz1#

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

希望能帮上忙。

4ioopgfo

4ioopgfo2#

出口不是这样的。您可以尝试以下操作:

import allConstants from '../constants';

然后使用一个常量,如:

allConstants.LOGIN_REQUEST

相关问题