2017-04-26 90 views
0

我不能明白为什么下面的方法行不通:出口做出反应常数

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例如,作为还原行动。

import { LOGIN_REQUEST, LOGIN_SUCCESS, LOGIN_FAILURE, LOGOUT } from '../constants'; 

,但我每次都输入常数越来越undefined。 它只能当我定义是这样的:

export const LOGIN_REQUEST = 'LOGIN_REQUEST'; 

也许有人有一些想法?

+0

如果你写了'module.exports = createConstants(...)',它可能会工作。 – Sulthan

回答

0

导出没有这样的工作。您可以尝试类似:

import allConstants from '../constants'; 

然后用一个常数,如:

allConstants.LOGIN_REQUEST 
0

你的第一种方法被称为default export。它不起作用,因为你使用的语法不正确。

MDN export entry,这就是你如何写一个default export //模块 “我-module.js” 出口默认功能立方体(X){ 返回X * X * X; }

你的第二种方法被称为named export,它的工作原理是因为它有正确的语法。再次来自MDN:

export const foo = Math.sqrt(2); // exports a constant 

希望它有帮助。