【发布时间】:2017-02-02 21:14:17
【问题描述】:
我有两个文件:User.js 和 Login.js。登录成功后,我想调用 User 类的静态 logIn 方法。我有奇怪的行为。我做错了什么?
文件内容User.js:
// user/User.js
// I also tried export default class User
export class User {
static logIn (token) {
}
static logOut (token) {
}
static isAuthorized () {
}
}
还有Login.js:
// login/Login.js
import React from 'react';
import GoogleLogin from 'react-google-login';
// I also tried import User from './../user/User';
// I also tried import {User} from './../user/User';
import * as User from './../user/User';
class Login extends React.Component {
constructor (props, context) {
super(props, context);
}
responseSuccess (googleUser) {
const idToken = googleUser.getAuthResponse().id_token;
User.logIn(idToken);
}
///
}
export default Login;
所以,User 是一个具有属性User 的对象。此属性包含 User 类的所有方法。
是否有可能以某种方式导出/导入类,以便我将在User 对象中获取用户类方法?
现在只有一种使用方法的方法:User.User.logIn()。
【问题讨论】:
-
当您说
import * as <NAME> from <LOC>时,如果说“从文件'x' 中获取所有导出并将它们收集到一个对象中并将该对象导出为”。如果您只是将导入语句更改为 import User from './../user/User'应该可以工作,因为该类是您的默认导出 -
是的,这是合乎逻辑的解释。我明白了。它不起作用的问题......我也试过
import User from './../user/User',我只是在那里添加了一个变体。 -
示例和截图显示的代码不同。
标签: javascript ecmascript-6 es6-modules