<!DOCTYPE html>
<html>
<head>
<meat charset="UTF-8">
<title>React之解决类中的this</title>
</head>
<body>
<!-- 准备好一个容器 -->
<div id="test"></div>
<!-- 核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- react-dom,操作dom -->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!-- 引入babel,jsx转为js -->
<script type="text/javascript" src="../js/babel.min.js"></script>
<!-- 此处一定要写babel -->
<script type="text/babel">
//1.创建组件
class Weather extends React.Component{
constructor(props){
super(props)
this.state={isHot:false}
this.demo=this.test.bind(this) //test为Weather中的 test(),demo在31行使用
}
render(){
const {isHot} =this.state;
console.log(this);
return <h1 onClick={this.demo}>今天天气很{isHot ? '炎热' : '凉爽'}</h1>
}
test() {
//changeWeather放在哪里?————weather的原型对象上,供实例使用
//changeWeather作为onClick的回调,所有不是通过实例调用的,是直接调用
//类中的方法默认开启了局部的严格模式,所有changeWeather中的this为underfined
console.log(this)
}
}
//2.渲染组件到页面
ReactDOM.render(<Weather />, document.getElementById('test'));
</script>
</body>
</html>