Javascript 在React中使用对象而不是类
我对JavaScript不熟悉,并会做出反应。我正在修改下面的代码以使用JavaScript对象而不是类。我被卡住了,因为我不理解第7行的代码,也不明白为什么会抛出错误Javascript 在React中使用对象而不是类,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我对JavaScript不熟悉,并会做出反应。我正在修改下面的代码以使用JavaScript对象而不是类。我被卡住了,因为我不理解第7行的代码,也不明白为什么会抛出错误 从“React”导入React; 功能组件(道具){ //而不是类AwesomeComponent exnteds React.Component AwesomeComponent=Object.assign(Object.create(React.Component.prototype)) AwesomeComponent.p
从“React”导入React;
功能组件(道具){
//而不是类AwesomeComponent exnteds React.Component
AwesomeComponent=Object.assign(Object.create(React.Component.prototype))
AwesomeComponent.props=道具
AwesomeComponent.state={likecount:0};
this.onLike=this.onLike.bind(this);//这是我的问题。第7行
onLike()
让newlikescont=this.state.likescont+1;
this.setState({likeCount:newlikeCount});
AwesomeComponent.render=函数(){
返回(
喜欢:{this.state.likeCount}
像我一样
);
}
}
导出默认组件;
下面是引发的错误:
试试这个
import React from 'react';
class AwesomeComponent extends React.Component {
constructor(props) {
super(props);
this.state = {likesCount : 0};
this.onLike = this.onLike.bind(this);
}
onLike () {
let newLikesCount = this.state.likesCount + 1;
this.setState({likesCount: newLikesCount});
}
render() {
return (
<div>
Likes : <span>{this.state.likesCount}</span>
<div><button onClick={this.onLike}>Like Me</button></div>
</div>
);
}
}
export default AwesomeComponent;
从“React”导入React;
类AwesomeComponent扩展了React.Component{
建造师(道具){
超级(道具);
this.state={likecount:0};
this.onLike=this.onLike.bind(this);
}
onLike(){
让newlikescont=this.state.likescont+1;
this.setState({likeCount:newlikeCount});
}
render(){
返回(
喜欢:{this.state.likeCount}
像我一样
);
}
}
导出默认组件;
您能粘贴得到的错误吗?AwesomeComponent.jsx:7未捕获类型错误:无法读取ReactComponentWrapper.js:306的measureLifeCyclePerf(ReactComponent.js:75)的ReactComponent组件(AwesomeComponent.jsx:7)中未定义的AwesomeComponent的属性“onLike”。\u ConstructionComponent WithoutOwner(ReactCompositeComponentWrapper上的(ReactCompositeComponent.js:305).\u ReactCompositeComponentWrapper.mountComponent(ReactDOMComponent.js:516)上的constructComponent(ReactCompositeComponent.js:280)…如果我使用onLike(){},它也会抛出错误。意外的标记{}谢谢@mmk,但我正在尝试不使用类。在react中使用Object.create来模拟原型继承是不可能的吗?我不这样认为。
import React from 'react';
class AwesomeComponent extends React.Component {
constructor(props) {
super(props);
this.state = {likesCount : 0};
this.onLike = this.onLike.bind(this);
}
onLike () {
let newLikesCount = this.state.likesCount + 1;
this.setState({likesCount: newLikesCount});
}
render() {
return (
<div>
Likes : <span>{this.state.likesCount}</span>
<div><button onClick={this.onLike}>Like Me</button></div>
</div>
);
}
}
export default AwesomeComponent;