日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

在 React 中檢查復(fù)選框是否被選中:

  • 創(chuàng)建一個(gè)布爾狀態(tài)變量(使用state variable)來(lái)存儲(chǔ)復(fù)選框的值。
  • 在輸入復(fù)選框上設(shè)置 onChange 事件偵聽(tīng)器。
  • 在偵聽(tīng)器中,使用事件對(duì)象的 target.checked 屬性來(lái)檢查復(fù)選框是否被選中。
  • 將選中的值存儲(chǔ)在狀態(tài)變量(state variable)中,以便能夠檢查是否從事件偵聽(tīng)器外部選中了復(fù)選框。

App.js

import { useState } from 'react';

export default function App() {
  const [agreement, setAgreement] = useState(false);
  const handleChange = (event) => {
    setAgreement(event.target.checked);
  }
  return (
    <div>
      <div id="app">
        <input
          type="checkbox"
          name="agreement"
          onChange={handleChange}
        />
        <label for="agreement">
          I agree to the terms and conditions
        </label>
        <br /><br />
        <button disabled={!agreement}>Continue</button>
      </div>
    </div>
  );
}

 

事件對(duì)象的target屬性表示復(fù)選框輸入元素;其 checked 屬性的值表示該復(fù)選框是否被選中。

事件對(duì)象被傳遞給 onChange 偵聽(tīng)器,只要選中或取消選中復(fù)選框,就會(huì)調(diào)用該偵聽(tīng)器。

我們使用 useState React 鉤子來(lái)存儲(chǔ)復(fù)選框的選中狀態(tài)。 useState 返回一個(gè)包含兩個(gè)值的數(shù)組;第一個(gè)是存儲(chǔ)狀態(tài)的變量,第二個(gè)是調(diào)用時(shí)更新?tīng)顟B(tài)的函數(shù)。

因此,每次選中或取消選中復(fù)選框時(shí),agreement狀態(tài)變量將自動(dòng)切換為 true 或 false。

我們將按鈕的 disabled 屬性設(shè)置為禁用,以分別在agreement為真和假時(shí)禁用和啟用它。

使用 ref 檢查復(fù)選框是否被選中

我們可以使用 ref 函數(shù)來(lái)檢查復(fù)選框是否選中,而不是使用 React State Hooks 鉤子函數(shù)控制復(fù)選框的選中值。

App.js 可以這樣改下,調(diào)整如下:

import { useState, useRef } from 'react';

export default function App() {
  const [message, setMessage] = useState('');
  const checkbox = useRef();
  const handleClick = () => {
    if (checkbox.current.checked) {
      setMessage('You know JS');
    } else {
      setMessage("You don't know JS");
    }
  }
  return (
    <div>
      <div id="app">
        <input
          type="checkbox"
          name="js"
          ref={checkbox}
        />
        <label for="js"> JAVAScript </label>
        <br />
        <button onClick={handleClick}>Done</button>
        <p>{message}</p>
      </div>
    </div >
  );
}

 

data 的數(shù)據(jù)狀態(tài)由 React state 鉤子函數(shù)進(jìn)行控制,不是 inputs本身,但是使用 Ref,它由 DOM 本身處理,這就是為什么上面示例中的輸入復(fù)選框沒(méi)有設(shè)置 value prop 或 onChange 事件處理程序的原因。相反,我們檢查是否使用 React ref 檢查復(fù)選框。當(dāng)用戶切換復(fù)選框時(shí),DOM 會(huì)更新選中的值,可以理解為普通的 Dom操作。

我們使用 useRef 鉤子創(chuàng)建一個(gè) ref 對(duì)象,并將其分配給復(fù)選框輸入的 ref 屬性。這樣做會(huì)將 ref 對(duì)象的當(dāng)前屬性設(shè)置為表示復(fù)選框的 DOM 對(duì)象。

useRef 返回一個(gè)可變對(duì)象,該對(duì)象在組件更新時(shí)維持其值。此外,修改此對(duì)象的當(dāng)前屬性的值不會(huì)導(dǎo)致重新渲染。這與從 useState 鉤子返回的 setState 更新函數(shù)不同。

如果表單非常簡(jiǎn)單并且不需要即時(shí)驗(yàn)證,并且只需要在提交表單時(shí)訪問(wèn)值,可以考慮使用 ref。

結(jié)束

今天的介紹就到這里,你學(xué)會(huì)了嗎?接下來(lái)我們做個(gè) useRef() 的使用總結(jié):

  • useRef() 鉤子函數(shù)創(chuàng)建 references 變量。
  • 使用初始值調(diào)用 const reference = useRef(initialValue) 會(huì)返回一個(gè)名為 reference 的特殊對(duì)象。引用對(duì)象有一個(gè)屬性current,你可以使用這個(gè)屬性來(lái)讀取引用值reference.current,或者更新reference.current = newValue。
  • 在組件重新渲染時(shí),useRef() 的值是持久的。
  • 與更新?tīng)顟B(tài)相反,更新 ref 不會(huì)觸發(fā)組件重新渲染。
  • useRef() 也可以訪問(wèn) DOM 元素。將 ref 分配給您要訪問(wèn)的元素的 ref 屬性,通過(guò) reference.current 進(jìn)行訪問(wèn)。

感謝你的閱讀,如果你喜歡我的分享,別忘了點(diǎn)贊轉(zhuǎn)發(fā),讓更多的人看到,最后別忘記點(diǎn)個(gè)關(guān)注,你的支持將是我分享最大的動(dòng)力,后續(xù)我會(huì)持續(xù)輸出更多內(nèi)容,敬請(qǐng)期待。

文章:
https://JavaScript.plainenglish.io/react-check-if-checkbox-is-checked-834a50ff16ec

作者:Coding Beauty

非直接翻譯,有自行改編和添加部分,翻譯水平有限,難免有疏漏,歡迎指正

分享到:
標(biāo)簽:React
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定