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回答
-
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
112017-11-04
相似问题