【发布时间】:2020-05-16 05:43:02
【问题描述】:
我有一个窗口mousemove 事件侦听器,它调用一个更改变量的函数。但是,当我将变量分配给道具时,它不会改变:
var x = null
var y = null
const cursor = (e) => {
x = e.screenX + 'px'
y = e.screenY + 'px'
console.log(x, y)
return x, y
}
window.addEventListener('mousemove', cursor)
我尝试在事件监听器中直接改
(window.addEventListener('mousemove', //everything in cursor) 但是我将无法访问 e 变量。
我也不能将它与 state 一起使用,因为由于某种原因它变得过于滞后和崩溃。
我怎样才能做到这一点?提前致谢。
这就是我在 vscode 中看到的:
(这是在App组件中,变量和事件监听器也在App中。)
沙盒:https://codesandbox.io/s/vigorous-agnesi-9l1ic?file=/src/App.js
【问题讨论】:
-
请为此使用codesandbox.io 创建一个small demo 以显示正在发生的问题。
-
console.log() 正在打印坐标。它正在工作
-
添加了一个沙盒
-
沙盒似乎是默认的初始反应模板。您是否保存了您的编辑?
-
那里没有任何状态变量。如果任何状态的值或道具的值发生变化,那么只有 react 会重新渲染组件。在您的情况下, x & y 只是变量。如果您将它们设为状态变量,那么它将再次重新渲染。
标签: javascript reactjs