ReactJS 问题:() => vs 函数 ()
ReactJS issue: () => vs function ()
正在关注他们网站上的 ReactJS 教程。
var Comment = React.createClass({
render: function() {
return (
<div className="comment">
<h2 className="commentAuthor">
{this.props.author}
</h2>
{this.props.children}
</div>
);
}
});
var CommentList = React.createClass({
render: () => {
return (
<div className="commentList">
<Comment author="Pete Hunt">This is one comment</Comment>
<Comment author="Jordan Walke"> This is *another* comment</Comment>
</div>
);
}
});
var CommentForm = React.createClass({
render: () => {
return (
<div className="commentForm">
Comment Form
</div>
);
}
});
var CommentBox = React.createClass({
render: () => {
return (
<div className="commentBox">
<h1>Comments</h1>
<CommentList />
<CommentForm/>
</div>
);
}
});
ReactDOM.render(
<CommentBox />,
document.getElementById("content")
);
但是,如果我在第一个组件注释中使用箭头符号,即:
(*参数*) => {}
代替正常的函数声明符号,即:
函数(*参数*){}
chrome解释器会吐出以下错误:
未捕获的类型错误:无法读取未定义的 属性 'props'
任何人都可以对此事有所了解吗?
箭头函数不会绑定 this
。因此,如果您将 render
函数创建为箭头函数,则 this
将不会绑定到当前组件。
因此,对于 render
和其他属于您的组件并需要以 this
身份访问该组件的方法,您需要使用真正的函数。不过,您可以对嵌套函数使用箭头函数(使用它们更有意义)。
正在关注他们网站上的 ReactJS 教程。
var Comment = React.createClass({
render: function() {
return (
<div className="comment">
<h2 className="commentAuthor">
{this.props.author}
</h2>
{this.props.children}
</div>
);
}
});
var CommentList = React.createClass({
render: () => {
return (
<div className="commentList">
<Comment author="Pete Hunt">This is one comment</Comment>
<Comment author="Jordan Walke"> This is *another* comment</Comment>
</div>
);
}
});
var CommentForm = React.createClass({
render: () => {
return (
<div className="commentForm">
Comment Form
</div>
);
}
});
var CommentBox = React.createClass({
render: () => {
return (
<div className="commentBox">
<h1>Comments</h1>
<CommentList />
<CommentForm/>
</div>
);
}
});
ReactDOM.render(
<CommentBox />,
document.getElementById("content")
);
但是,如果我在第一个组件注释中使用箭头符号,即:
(*参数*) => {}
代替正常的函数声明符号,即:
函数(*参数*){}
chrome解释器会吐出以下错误:
未捕获的类型错误:无法读取未定义的 属性 'props'
任何人都可以对此事有所了解吗?
箭头函数不会绑定 this
。因此,如果您将 render
函数创建为箭头函数,则 this
将不会绑定到当前组件。
因此,对于 render
和其他属于您的组件并需要以 this
身份访问该组件的方法,您需要使用真正的函数。不过,您可以对嵌套函数使用箭头函数(使用它们更有意义)。