如果您在任何時候單擊 3 個單選按鈕中的任何一個,它都會計算單擊次數,如果單擊次數在控制臺中大于 3,它會顯示您獲勝或失敗的訊息,但它不起作用
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"/>
</>
);
}
uj5u.com熱心網友回復:
讓 handlechange 函式確切知道檢查了哪個輸入:請嘗試以下操作:
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"/>
</>
);
uj5u.com熱心網友回復:
這是您問題的解決方案,創建一個clickCount狀態并在單選按鈕更改時更新它。
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"
/>
</>
);
}
沙盒鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/403135.html
標籤:
上一篇:我無法在我的m1macbookpro上安裝createreact應用程式
下一篇:匯入組件的Jest模擬變數
