Meteor.isServer和Meteor.isClient使用情况

时间:2016-07-11 12:08:13

标签: meteor

我正在尝试了解如何使用 isServer / isClient 我的.jsx文件位于imports / ui / components / User / Login.jsx

我尝试调用Meteor.isServer,Meteor.isClient,但两个值都是未定义的。我是Meteor的新手,无法理解这种行为。

import Meteor from 'meteor/meteor';
import React from 'react';
import ReactDOM from 'react-dom';

export class Login extends React.Component {

onSubmit(){
    //code omitted

    console.log(Meteor.isClient);
    console.log(Meteor.isServer);
}
render() {
    return (
        <div className="row">
            //code omitted
        </div>
    )
}

}

3 个答案:

答案 0 :(得分:4)

我不认为Meteor是默认导出,因此我认为您需要编写import {Meteor} from 'meteor/meteor'

答案 1 :(得分:0)

请记住,在JavaScript中,函数上下文是在调用函数时定义的,而不是在定义函数时定义的。

在您的登录组件中定义(导入)Meteor。但是onSubmit()是一个事件处理程序,可以从许多上下文中调用(取决于你绑定它的方式)。

Meteor对象需要在调用onSubmit()的上下文中可用。

你可以尝试(很难知道没有看到更多代码)是将事件处理程序显式绑定到组件。添加如下构造函数:

constructor(props) {
    super(props);
    this.onSubmit = this.onSubmit.bind(this);
}

答案 2 :(得分:0)

我在流星1.3之前创建了一些流星应用程序(没什么大不了的),现在一切都改变了。下一个应用程序我将尝试Mantra JS Meteor上的架构框架,他的创建者(Arunoda Susiripala)是一个流星大师,编写了许多有用的软件包。

我为什么这么说?因为Mantra JS定义了应该如何创建客户端和服务器模块,并强制您按照应该导致可维护性,可测试性和代码分离的模式构建应用程序