Ich habe zwei Dateien: User.js
und Login.js
. Nach erfolgreichem Login möchte ich die statische logIn
Methode der Benutzerklasse aufrufen. Ich habe seltsames Verhalten. Was mache ich falsch?Wie erstellt man eine Klasse in einem es6 Modul und importiert sie in ein anderes?
Dateiinhalt User.js:
// user/User.js
// I also tried export default class User
export class User {
static logIn (token) {
}
static logOut (token) {
}
static isAuthorized() {
}
}
Und 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;
Wenn ich Import verwenden und exportieren diese Weise kann ich dieses Verhalten bekommen:
So, Benutzer ist ein Objekt mit Eigenschaft User
. Diese Eigenschaft enthält alle Methoden der Klasse Benutzer.
Ist es möglich, irgendwie Klasse zu exportieren/importieren, damit ich Benutzerklassenmethoden in User
Objekt bekomme?
Jetzt gibt es nur eine Möglichkeit, Methoden zu verwenden: User.User.logIn()
.
Wenn Sie sagen, 'import * als von ', wenn sagt „alle der Exporte aus der Datei übernehmen‚x‘und sammeln sie in einem Objekt und exportieren Sie das Objekt als ". Sollte funktionieren, wenn Sie Ihre Import-Anweisung einfach auf 'Benutzer importieren von './../ user/User' ändern, da die Klasse Ihr Standard-Export ist. –
Ja, das ist eine logische Erklärung. Ich verstehe es. Das Problem, dass es nicht funktioniert ... Ich habe auch versucht, 'Benutzer importieren' ./../ Benutzer/Benutzer '', ich habe gerade eine der Varianten dort hinzugefügt. –
Das Beispiel und der Screenshot zeigen einen anderen Code. – zeroflagL