【发布时间】:2020-06-25 01:56:46
【问题描述】:
未能成功使用this 线程提供帮助。
我有一个带有 onClick 的按钮 div,它调用了 handleSendMessage。
我希望在用户按下“Enter”键时调用此handleSendMessage
在页面上。
我怎样才能做到这一点?
组件如下所示:
const ChatScreen = () => {
const [message, setMessage] = useState("");
const dispatch = useDispatch();
let chatsFromState = useSelector(state => state.chatsState.chats);
const socket = io("localhost:4000");
socket.on("RECEIVE_MESSAGE", msgReceived => {
console.log("msgReceived ", msgReceived);
});
const handleChange = e => setMessage(e.target.value);
const handleSendMessage = async () => {
socket.emit("SEND_MESSAGE", message);
await dispatch(sendMessage(message));
setMessage("");
};
return (
<div className="chatScreen">
<div className="">HI</div>
<input
value={message}
onChange={handleChange}
placeholder="Your message here..."
/>
<div className="sendBtn" onClick={handleSendMessage}>
Send
</div>
<div className="messagesContainer">
{chatsFromState.map((chat, i) => (
<div className="messageBox" key={i}>
message : {chat.message}
</div>
))}
</div>
</div>
);
};
export default ChatScreen;
【问题讨论】:
标签: javascript reactjs keyboard