handleClick()参数问题

来源:13-2 注册功能模块设计(中)

学东西要快

2017-10-20

import React from "react";
import ReactDOM from "react-dom"
class Input extends React.Component{
  constructor(){
    super();
    this.state={
      value:"hello!"
    }
  };
  handleChange(e){
    console.log(e.target);
    this.setState({value: e.target.value});
  };
  render () {
    var value = this.state.value;
    return (
      <div>
        <input type="text" value={value} onChange={this.handleChange.bind(this)} />
        <p>{value}</p>
      </div>
    );
  }
};

ReactDOM.render(<Input/>, document.getElementById('root'));

parry老师,handleClick(e)接收一个e的参数,在获取key值时,你是直接写成e.key来获取。  

这里我不懂,这里不应该写成e.target.key吗?(虽然我试过这样写是错的,说明这里必须用e.key)

我这里也有个小的试验性的代码,是用e.target.(参数名)的形式获取参数(亲测是可行的)

所以我十分不解,究竟什么时候用e.(变量名)    什么时候用e.target.(变量名)  


写回答

1回答

Parry

2017-10-21

e.target.key 是原始 DOM 的操作,但是使用 React 就是为了使用虚拟 DOM,所以应该使用 e.key。

具体的讨论与解释可以看这里:https://stackoverflow.com/questions/45162793/how-to-get-the-e-key-of-li-element-in-react-js

1
1
学东西要快
非常感谢!
2017-11-04
共1条回复

结合基础与实战学习React.js 独立开发新闻头条平台

轻松入门 React 开发,React Router 4 与 Webpack 2 完美升级项目

2768 学习 · 2126 问题

查看课程