Meteor.loginWithPassword 不调用回调



我一直在将用户帐户功能添加到Meteor + React应用程序中。

对于登录,使用Meteor.loginWithPassword,我在服务器日志中没有得到任何特殊异常或崩溃的迹象。但是,回调永远不会被调用。

登录请求

如上所示,"已请求登录"将在控制台中发布。

但是"登录已处理"永远不会执行,这表明回调永远不会执行。

帐户

-UI以及帐户-密码已添加到Meteor中。

订阅仍然有效,所以我不确定是什么原因导致失败。

我至少希望在服务器端也抛出一些异常,但我没有得到关于正在发生的事情的明显信息。这是我的 React 代码:

import React from 'react';
import Meteor from 'meteor/meteor'
import { Input, Button } from 'react-onsenui'
class LoginPage extends React.Component{
    constructor(props) {
        super(props);
        this.state = {
          username: "",
          password: "",
        };
    }
    loginRequest(){
        console.log("Login Requested")
        Meteor.loginWithPassword(this.state.username, this.state.password, function(error){
            console.log("Login Processed");
        });
    }
    render(){
        return (
            <form className="LoginPage">
                <p>
                <Input
                    value={this.state.username} float
                    onChange={(event) => { this.setState({username: event.target.value})} }
                    modifier='material'
                    placeholder='Username' />
                </p>
                <p>
                <Input
                    value={this.state.password} float
                    onChange={(event) => { this.setState({password: event.target.value})} }
                    modifier='material'
                    placeholder='Password' />
                </p>
                <Button onClick={this.loginRequest.bind(this)} modifier="large--cta">Login</Button>
            </form>
        )
    }
}
export default LoginPage;
我相信

区别在于默认导入/导出和命名导入/导出之间的区别。这里有一个解释:什么时候应该在 ES6 导入时使用大括号?

第一个(不带括号)表示默认导入。 第二个是命名导入,它与导出的确切名称匹配。

这与行匹配

api.export('Meteor');

可以在核心 Meteor 包中找到:https://github.com/meteor/meteor/blob/master/packages/meteor/package.js

在 Meteor 文档中还有一个模块信息的解释:https://docs.meteor.com/packages/modules.html#Basic-syntax

您可能还对流星论坛上的此主题感兴趣:https://forums.meteor.com/t/how-do-you-know-the-name-to-import/26718

好的,

我终于解决了这个问题。每次我认为我理解Javascript时,很明显我不了解。

问题源于我如何导入流星。我变了

从"流星/流星"导入流星

从"流星/流星"导入{流星}

我不知道为什么会这样,所以有人请解释一下,这样我就不会再犯这个错误了。

最新更新