si hace clic en cualquiera de los 3 botones de radio en cualquier momento, contará el número de clics si el número de clics es mayor que 3 en la consola, le dará un mensaje que gana o pierde, pero no funciona
import React, { useState } from 'react'; export default function App() { const [disable, setDisable] = useState(false); const check = ({target}) => { if (target.id==='one') { setDisable(true); } else { setDisable(false); } } const handlechange=(e)=>{ let c=e.target.value; if(c.length>3) console.log('win') else console.log('lose') } return ( <> <input type="radio" onChange={(e) => {check(e);handlechange(e)}} disabled={disable} name="one" /> <input type="radio" onChange={(e) => {check(e);handlechange(e)}} disabled={disable} name="one" /> <input type="radio" onChange={(e) => {check(e);handlechange(e)}} disabled={disable} name="one" id="one"/> </> ); }Deje que la función handlechange sepa exactamente qué entrada se verificó: Intente esto:
const handlechange=(e, number)=>{ if(number>=3) console.log('win') else console.log('lose') } return ( <> <input type="radio" onChange={(e) => {check(e, 1);handlechange(e, 1)}} disabled={disable} name="one" /> <input type="radio" onChange={(e) => {check(e, 2);handlechange(e, 2)}} disabled={disable} name="one" /> <input type="radio" onChange={(e) => {check(e, 3);handlechange(e, 3)}} disabled={disable} name="one" id="one"/> </> );Aquí está la solución a su problema, cree un estado clickCount y actualícelo al cambiar el botón de opción.
import React, { useState } from "react"; export default function App() { const [disable, setDisable] = useState(false); const [clickCount, setClickCount] = useState(1); const handlechange = (e) => { setClickCount(clickCount + 1); if (clickCount > 3) { console.log("win"); setDisable(true); } else { console.log("lose"); } }; return ( <> <input type="radio" onChange={handlechange} disabled={disable} name="one" /> <input type="radio" onChange={handlechange} disabled={disable} name="one" /> <input type="radio" onChange={handlechange} disabled={disable} name="one" /> </> ); }Enlace de caja de arena.