react状态组件事件中的四种获取this方式的写法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
class Hello extends React.Component {
constructor(props) {
super(props)
this.state = {
age: '16',
sex: '男',
flag: true,
addr:"中国"
}
this.updateAge = this.updateAge.bind(this)
}
updateAge() {
this.setState({
age: 5
})
}
updateState = () => {
let sex = this.state.sex;
sex = sex == '男' ? '女' : '男'
console.log("sex===",sex)
this.setState({
sex
})
}
updateSex(){
let sex = this.state.sex;
sex = sex == "男" ? '女' : '男'
this.setState({
sex
})
}
updateAddr(){
let addr = this.state.addr;
addr = addr == "中国" ? '华夏' : '中国'
this.setState({
addr
})
}
render() {
return <div>
<h1>这是一个有状态组件</h1>
<h1>姓名:{this.props.name}</h1>
<h1>年龄:{this.state.age}</h1>
<h1>性别:{this.state.sex}</h1>
<h1>地址:{this.state.addr}</h1>
<button onClick={ this.updateAge }>更新年龄</button>
<button onClick={ this.updateState }>{this.state.flag ? 'YES' : 'NO'}</button>
<button onClick={ this.updateSex.bind(this) }>更新性别</button>
<button onClick={()=> this.updateAddr() }>更新地址</button>
</div>
}
}
ReactDOM.render(
<Hello name="weiwei"/>,
document.getElementById("root")
)
</script>
</body>
</html>