我无法理解为什么以下方法不起作用:
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
也许有人有一些想法?
答案 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