首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >React导出常量

React导出常量
EN

Stack Overflow用户
提问于 2017-04-26 16:22:01
回答 2查看 10.5K关注 0票数 0

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

constants.js

代码语言:javascript
复制
import { createConstants } from '../utils';

export default createConstants(
    'LOGIN_REQUEST',
    'LOGIN_SUCCESS',
    'LOGIN_FAILURE',
    'LOGOUT',
    'FETCH_DATA_REQUEST',
    'RECEIVE_DATA'
);

utils.js

代码语言:javascript
复制
import React from 'react';

export function createConstants(...constants) {
    return constants.reduce((acc, constant) => {
        acc[constant] = constant;
        return acc;
    }, {});
}

接下来,我想导入LOGIN_REQUEST,例如作为redux操作。

代码语言:javascript
复制
import { LOGIN_REQUEST, LOGIN_SUCCESS, LOGIN_FAILURE, LOGOUT } from '../constants';

但是对于所有导入的常量,我每次都会得到undefined。只有当我这样定义时,它才能起作用:

代码语言:javascript
复制
export const LOGIN_REQUEST = 'LOGIN_REQUEST';

也许有人有什么想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-26 16:59:26

您的第一种方法称为default export。它不能工作,因为您使用的语法不正确。

MDN export entry中,这就是编写default export的方式

代码语言:javascript
复制
// module "my-module.js"
export default function cube(x) {
  return x * x * x;
}

您的第二种方法称为named export,它之所以有效,是因为它具有正确的语法。同样来自MDN:

代码语言:javascript
复制
export const foo = Math.sqrt(2); // exports a constant

希望能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2017-04-26 16:43:13

导出不是这样工作的。您可以尝试执行以下操作:

代码语言:javascript
复制
import allConstants from '../constants';

然后使用一个常量,比如:

代码语言:javascript
复制
allConstants.LOGIN_REQUEST
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43628656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档