I am trying to detect double clicks and single clicks on buttons.
function App() {
const buttonRef = useRef();
const [message, setMessage] = useState();
const [ws, setWS] = useState();
useEffect(() => {
const localWS = new WebSocket('ws://192.168.31.104:8000/ws');
localWS.onmessage = (event) => {}
}, []);
useDoubleClick({
onSingleClick: e => {
console.log(e, 'single click');
},
onDoubleClick: e => {
console.log(e, 'double click');
},
ref: buttonRef,
latency: 250
});
return <button ref={buttonRef}>Click Me</button>
}
export default App;
This function works perfectly, but when I try to change a state variable, the useDoubleClick hooks stops to detect double clicks.
function App() {
const buttonRef = useRef();
const [message, setMessage] = useState();
const [ws, setWS] = useState();
useEffect(() => {
const localWS = new WebSocket('ws://192.168.31.104:8000/ws');
localWS.onmessage = (event) => {
setMessage(JSON.parse(event.data)) // HERE
setWS(localWS); // HERE
}
}, []);
useDoubleClick({
onSingleClick: e => {
console.log(e, 'single click');
},
onDoubleClick: e => {
console.log(e, 'double click');
},
ref: buttonRef,
latency: 250
});
return <button ref={buttonRef}>Click Me</button>
}