React 和 HTML 事件处理的语法略有不同:
HTML 的事件语法:
<button onclick="activateLasers()">
Activate Lasers
</button>
React 的事件语法:
<button onClick={activateLasers}>
Activate Lasers
</button>
在 React 中要避免浏览器预设行为
必须明确呼叫 preventDefault
function Form() {
function handleSubmit(e) {
e.preventDefault();
console.log('You clicked submit.');
}
return (
<form onSubmit={handleSubmit}>
<button type="submit">Submit</button>
</form>
);
}
JavaScript 中,class 的方法预设是没有被绑定(bound)的
如果在未绑定的状况下呼叫,this 会变成 undefined
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {isToggleOn: true};
// 为了让 `this` 能在 callback 中被使用,这里的绑定是必要的:
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')
);
如不绑定,也可以使用箭头函式( arrow function)
class LoggingButton extends React.Component {
handleClick() {
console.log('this is:', this);
}
render() {
// 这个语法确保 `this` 是在 handleClick 中被绑定:
return (
<button onClick={() => this.handleClick()}>
Click me
</button>
);
}
}
不怎麽重要的前言 上一篇我们介绍了array的基本概念,这是一个非常好用也很常使用到的东西喔! 今天...
如果类别要被继承,可以使用 open 修饰 open class Person(var name :...
前言 前几天有提到在工厂模式中,我们会用一个函式把全部 app 生起来,今天要实作的就是这个函式,一...
记录学习内容。看网路上大大们的文章和影片,做些纪录。 以下内容大多来自网路上大大们的文章。 还不了解...
Hello, 各位 iT邦帮忙 的粉丝们大家好~~~ 本篇是 Re: 从零开始用 Xamarin 技...