Meteor:ReactMeteorData与Ecmascript6

时间:2015-12-23 09:52:10

标签: meteor reactjs

我正在使用Meteor和ReactJS开发应用程序。我正在使用我的React组件的ES6语法。使用旧语法,您可以执行以下操作:

MyComponent = React.createClass({
   mixins: [ReactMeteorData],

   render() {
    ...
   }
})

但是如何转换为ES6语法?

帮助表示感谢。谢谢!

2 个答案:

答案 0 :(得分:1)

当您参考" ES6语法"时,您的意思是使用ES6类创建React组件吗?如下面的代码:

$(document).ready(function(){
    var apiKey = getApiKey(); // these are just placeholders
    var password = getPassword(); //for however you store your api key
    $.ajax({
        type: "GET",
        url: "https://app.handshake.com/api/v2/items.xml",
        dataType: "xml",
        beforeSend: function(xhr) { 
            xhr.setRequestHeader("Authorization", "Basic " + btoa([apiKey, password].join(":"))); 
        },

不幸的是,如果使用ES6类创建React组件,那么就没有mixin支持。您必须使用class HelloMessage extends React.Component { render() { return <div>Hello {this.props.name}</div>; } } 方式。

以下内容来自React官方文档:Reusable Components

  

没有Mixins

     

不幸的是,ES6在没有任何mixin支持的情况下推出。因此,当您将React与ES6类一起使用时,不支持mixins。相反,我们正在努力使其更容易支持此类用例,而无需使用mixins。

答案 1 :(得分:1)

我可以看看以下内容: https://github.com/brigand/react-mixin

它允许你在ES6类上使用mixins作为装饰器:

@ReactMixin.decorate(ReactMeteorData)
export default class MyClass extends React.Component {
  ...
}