我正在使用Meteor和ReactJS开发应用程序。我正在使用我的React组件的ES6语法。使用旧语法,您可以执行以下操作:
MyComponent = React.createClass({
mixins: [ReactMeteorData],
render() {
...
}
})
但是如何转换为ES6语法?
帮助表示感谢。谢谢!
答案 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 {
...
}