React学习之事件绑定处理机制(五)
区别如下: //HTML
<button onclick="taddlistener()">
Activate Lasers
</button>
//React
<button onClick={taddlistener}>
Activate Lasers
</button>
除了上面说明的那两点,还有一个不同地方,就是在 这里还要说的是 其中的 对于在 class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
// 特别注意这一行语句
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
this.setState(prevState => ({
isToggleOn: !prevState.isToggleOn
}));
}
render() {
return (
<button onClick={this.handleClick}>
{this.state.isToggleOn ? 'ON' : 'OFF'}
</button>
);
}
}
ReactDOM.render(
<Toggle />,document.getElementById('root')
);
这份代码涉及到 class Test {
constructor(){
this.values = 'tm7';
//this.view = this.view.bind(this);
}
view(){
this.print();
}
print(){
console.log(this.values);
}
}
let a = new Test();
a.view();
let b = a.view;
b();
将我注释掉的一行语句给加入,就不会报错
我本来是想调用 当然不只有这么一种方法还处理事件,这里再讲一种: class LoggingButton extends React.Component {
handleClick() {
console.log('this is:',this);
}
render() {
// This syntax ensures `this` is bound within handleClick
return (
<button onClick={(e) => this.handleClick(e)}> Click me </button> ); } }
这样的用法就是不让 接下来的方法请增大眼睛 //另一种,属性初始化语法
class LoggingButton extends React.Component {
// 此语法只建立在Babel中,不属于ES6语法内容
handleClick = () => {
console.log('this is:',this);
}
render() {
return (
<button onClick={this.handleClick}> Click me </button> ); } }
虽然上述语法在
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |