我一直在将用户帐户功能添加到Meteor + React App中。
对于使用Meteor.loginWithPassword进行的登录,我没有在服务器日志中看到任何特殊异常或崩溃的迹象。但是,回调永远不会被调用。
上面的“登录请求”看将张贴在控制台中。
但是“登录处理”从不执行,表明该回调从未执行。
accounts-ui和accounts-password已添加到流星中。
订阅仍然有效,所以我不确定是什么原因导致订阅失败。
我至少希望在服务器端也会引发一些异常,但是我没有得到有关正在发生的事情的明显信息。 这是我的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;
答案 0 :(得分:0)
好的,我终于解决了这个问题。 每次我认为我了解Javascript时,很明显我不明白。
问题出在我如何导入流星。 我改变了
从“流星/流星”导入流星
到
从“流星/流星”导入{流星}
我不知道为什么会这样,所以请有人解释,这样我就不会再犯此错误了。
答案 1 :(得分:0)
我相信默认的导入/导出和命名的导入/导出之间是有区别的。 这是一个解释:When should I use curly braces for ES6 import?
第一个(不带括号)表示默认导入。第二个是命名导入,与导出的确切名称匹配。
这与行
匹配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
您可能也对Meteor论坛上的该主题感兴趣: https://forums.meteor.com/t/how-do-you-know-the-name-to-import/26718