每当我点击回车键时,console.log
正在打印,但(socketId, msg)
显示undefined
。我在这里做错了什么,请帮助我提前谢谢
const callComponent = ({
handleSendMessage
}) => {
function handleMessage(socketId, msg) {
console.log('chat open clicked', socketId, msg)
handleSendMessage(socketId, msg)
}
useEffect(() => {
const listener = event => {
if (event.code === "Enter" || event.code === "NumpadEnter") {
console.log("Enter key was pressed. Run your function.");
event.preventDefault();
handleMessage(socketId, msg)
}
};
document.addEventListener("keydown", listener);
return () => {
document.removeEventListener("keydown", listener);
};
}, []);
//...
}
useEffect
内部的handleMessage
函数对sockedId
和msg
没有访问权限。传递函数形参,因此必须在调用函数的作用域中。