美文网首页
react修正指针的3种方法及传参的2种方式

react修正指针的3种方法及传参的2种方式

作者: 嘻小佳 | 来源:发表于2019-01-04 15:42 被阅读0次

修正指针的3种方法

1.在构造器constructor中修正指针

优势:只执行一次
eg:

 constructor(props) {
       super(props);
       this.Enter = this.Enter.bind(this);
  }
import React,{Component} from 'react';  //导入必要的库和组件
class App extends Component {
  constructor() {
    super();  //ES6继承以后,必须在第一句调用父类构造器super()
    this.sayHi = this.sayHi.bind(this);
  }
  sayHi() {
    alert("hi");
    console.log(this);
  }
  render() {
    var arr = ["qq","q7","wey5"];
    return(
        <div>
          <h1>hello world</h1>
          <input type="checkbox" id="sex" value="man"/>
          <label htmlFor="sex">男</label>
          <button onClick={this.sayHi}>测试</button>
          <ul>
            {
              arr.map(function(item,index){
                return <li key={item}>{item}</li>
              })
            }
          </ul>
        </div>   
      )
  }
}
export default App;

2.使用bind绑定

<div onKeyUp={this.Enter.bind(this)}></div> 
 <button onClick={this.sayHi.bind(this)}>测试</button>

3.利用箭头函数绑定

 <div onKeyUp={(event)=>this.Enter(event)}></div> 

传参的两种方式

1.onClick={()=>this.方法(参数)}

import React,{Component} from 'react';  //导入必要的库和组件
class App extends Component {
  constructor() {
    super();  //ES6继承以后,必须在第一句调用父类构造器super()
    this.sayHi = this.sayHi.bind(this);
  }
  sayHi(username) {
    alert("hi" + username);
    console.log(this);
  }
  render() {
    var arr = ["qq","q7","wey5"];
    return(
        <div>
          <h1>hello world</h1>
          <input type="checkbox" id="sex" value="man"/>
          <label htmlFor="sex">男</label>
          <button onClick={()=>this.sayHi("男神")}>测试</button>
          <ul>
            {
              arr.map(function(item,index){
                return <li key={item}>{item}</li>
              })
            }
          </ul>
        </div>   
      )
  }
}
export default App;

2.onClick={this.方法.bind(this, 参数)}

import React,{Component} from 'react';  //导入必要的库和组件
class App extends Component {
  constructor() {
    super();  //ES6继承以后,必须在第一句调用父类构造器super()
    this.sayHi = this.sayHi.bind(this);
  }
  sayHi(username) {
    alert("hi" + username);
    console.log(this);
  }
  render() {
    var arr = ["qq","q7","wey5"];
    return(
        <div>
          <h1>hello world</h1>
          <input type="checkbox" id="sex" value="man"/>
          <label htmlFor="sex">男</label>
          <button onClick={this.sayHi.bind(this,"男神崔")}>测试</button>
          <ul>
            {
              arr.map(function(item,index){
                return <li key={item}>{item}</li>
              })
            }
          </ul>
        </div>   
      )
  }
}
export default App;

相关文章

网友评论

      本文标题:react修正指针的3种方法及传参的2种方式

      本文链接:https://www.haomeiwen.com/subject/tanhrqtx.html