react学习笔记02

react 写函数的时候 需要在constructor里面 this.handleClick = this.handleClick.bind(this) 初始化这个函数的时候,bind(this)绑定this,
绑定后handleClick方法里面才能获取到 constructor 里初始化的变量,不绑定的话,会提示
Cannot read property ‘myTextInput’ of undefined
即找不到 handleClick 里面调用 constructor 里初始化的变量
例子

  class MyComponent extends React.Component {
        constructor(props) {
          super(props);
          this.myTextInput = React.createRef();
          this.handleClick = this.handleClick.bind(this)
          
        }
        handleClick(){
          this.myTextInput.current.focus();
        }
        render(){
          return (
            <div>
              <input type="text" ref={this.myTextInput}/>
              <input type="button" value="按钮" onClick={this.handleClick}/>
            </div>
          )
        }
      }
      
this.setState({}) 写法 注意下
this.setState({
    value : '我是改变后的值喔?'
})

input 获取用户输入的值 event.target.value 读取用户输入的值

组件的生命周期分成三个状态

Mounting:已插入真实 DOM
Updating:正在被重新渲染
Unmounting:已移出真实 DOM

React 为每个状态都提供了两种处理函数,will 函数在进入状态之前调用,did 函数在进入状态之后调用,三种状态共计五种处理函数。

componentWillMount()
componentDidMount()
componentWillUpdate(object nextProps, object nextState)
componentDidUpdate(object prevProps, object prevState)
componentWillUnmount()

此外,React 还提供两种特殊状态的处理函数。

componentWillReceiveProps(object nextProps):已加载组件收到新的参数时调用
shouldComponentUpdate(object nextProps, object nextState):组件判断是否重新渲染时调用

在生命周期函数里面调用,用定时器获取 state里面变量的时候 需要给定时器绑定this 然后 生命周期函数里面才能取到值
错误写法

componentDidMount(){
    setInterval(function(){
        let a = this.state.opacity
    },1000)
}

正确写法 用bind 把 class里面的this绑定到 生命周期函数里面

componentDidMount(){
    setInterval(function(){
        let a = this.state.opacity
    }.bind(this),1000)
}

个人网站 www.TencentIT.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值