ReactJS如何处理这个涉及DOM的问题
在vanilla js中,如果我们想向dom添加一个侦听器,我们可以这样做ReactJS如何处理这个涉及DOM的问题,reactjs,Reactjs,在vanilla js中,如果我们想向dom添加一个侦听器,我们可以这样做 <div onclick="myFunction(this)">...</div> 。。。 但我在react组件中做的,这是指组件类本身。如何处理这样的事情?您应该在函数中传递事件,然后使用e.target访问DOM元素 例如,如果要处理输入更改,可以执行以下操作: const [values, setValues] = useState({ username: '', }); cons
<div onclick="myFunction(this)">...</div>
。。。
但我在react组件中做的,这是指组件类本身。如何处理这样的事情?您应该在函数中传递
事件
,然后使用e.target
访问DOM元素
例如,如果要处理输入更改,可以执行以下操作:
const [values, setValues] = useState({
username: '',
});
const handleChange = event => {
event.persist();
setValues(values => ({
...values,
[event.target.id]: event.target.value
}));
};
event.target.id
是DOM元素的id,event.target.value
是同一元素的值,在本例中为input
<input
id="username"
type="text"
placeholder="Enter username"
onChange={handleChange}
value={values.username}
required
></input>
也
注意:
如果希望以异步方式访问事件属性,则应该对事件调用event.persist(),这将从池中删除合成事件,并允许用户代码保留对事件的引用
在react中,你应该使用
onClick
(大写C),并将事件传递给你的函数
<div onClick={(e) => {myfunction(e)}}>...</div>
在您的上下文中,
此
引用DOM目标元素,因此您可以将函数定义为:
function myFunction(target) { /* Code here */ }
但在react中,定义输入时:
<input onClick={myFunction} />
请问您为什么想要一个指向Dom的
this
?此外,您还应该查找ref
道具对组件的作用,听起来这可能就是您要查找的。在dom事件中,reactthis==e.target
中的相同操作,因为我不想在方法中执行document.getElementById,因此,我宁愿将dom本身作为参数,请为setValues
添加有关useState
的信息,或者用this.setState
更改它。OP可能会混淆。:)
<input onClick={myFunction} />
function myFunction(event) { console.log(event.target) }