作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将事件对象传递给嵌套函数并让脚本理解它?
下面不是我的实际代码,但它说明了问题。我猜那里的功能无法完成,因为 evt.target.src
超出了范围。同样,这是简化的代码。我只是问如何从这个嵌套函数内部理解 evt.target.src
。
SomeFunction =(evt)=> {
setTimeout(
()=> {evt.target.src = somethingIcreated}, 200
)
};
如果我将它分配给嵌套函数之外的变量来传入,它只会被理解为一些随机变量,而不是实际事件对象的 src
。因此 src
不会改变,否则项目会崩溃,因为它无法处理 null 的内容。
最佳答案
React 使用合成事件并重用它们,因此您不能在处理程序返回后使用它们。
你有两个选择:
您可以从它们那里获取属性,以后再获取它们。所以在你的情况下:
SomeFunction = ({target}) => {
setTimeout(
()=> {target.src = somethingIcreated}, 200
)
};
在那里,我在参数列表中使用解构从事件对象中获取 target
属性,以后可以重用它。它只是事件对象本身,您无法在处理程序返回后使用它。
您可以在事件上使用 persist
方法来告诉 React 您想要保留它。
更多内容在 synthetic events documentation .
关于javascript - 如何将事件对象传递给嵌套函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57443212/
我是一名优秀的程序员,十分优秀!