亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

在 React 中檢查復選框是否被選中:

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

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>
  );
}

 

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

事件對象被傳遞給 onChange 偵聽器,只要選中或取消選中復選框,就會調用該偵聽器。

我們使用 useState React 鉤子來存儲復選框的選中狀態(tài)。 useState 返回一個包含兩個值的數(shù)組;第一個是存儲狀態(tài)的變量,第二個是調用時更新狀態(tài)的函數(shù)。

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

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

使用 ref 檢查復選框是否被選中

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

App.js 可以這樣改下,調整如下:

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ù)進行控制,不是 inputs本身,但是使用 Ref,它由 DOM 本身處理,這就是為什么上面示例中的輸入復選框沒有設置 value prop 或 onChange 事件處理程序的原因。相反,我們檢查是否使用 React ref 檢查復選框。當用戶切換復選框時,DOM 會更新選中的值,可以理解為普通的 Dom操作。

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

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

如果表單非常簡單并且不需要即時驗證,并且只需要在提交表單時訪問值,可以考慮使用 ref。

結束

今天的介紹就到這里,你學會了嗎?接下來我們做個 useRef() 的使用總結:

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

感謝你的閱讀,如果你喜歡我的分享,別忘了點贊轉發(fā),讓更多的人看到,最后別忘記點個關注,你的支持將是我分享最大的動力,后續(xù)我會持續(xù)輸出更多內容,敬請期待。

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

作者:Coding Beauty

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

分享到:
標簽:React
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

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

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

答題星2018-06-03

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

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

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

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

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

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定