反应导出常量

时间:2017-04-26 08:22:01

标签: reactjs redux react-redux

我无法理解为什么以下方法不起作用:

constants.js

func getPersonIndex(from: [Person], user: Person) -> Int? {
    return from.index(where: { $0 === user })
}

getPersonIndex(from: personsArray, user: person2)

utils.js

import { createConstants } from '../utils';

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

接下来我想导入LOGIN_REQUEST,例如redux action。

import React from 'react';

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

但我每次都为所有导入的常量获得import { LOGIN_REQUEST, LOGIN_SUCCESS, LOGIN_FAILURE, LOGOUT } from '../constants'; 。 只有当我这样定义时它才有效:

undefined

也许有人有一些想法?

2 个答案:

答案 0 :(得分:1)

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

希望它有所帮助。

答案 1 :(得分:0)

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

import allConstants from '../constants';

然后使用常量,如:

allConstants.LOGIN_REQUEST