最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決React報錯You provided a `checked` prop to a form field

 更新時間:2022年12月02日 09:44:00   作者:Borislav Hadzhiev  
這篇文章主要為大家介紹了React報錯You provided a `checked` prop to a form field的解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

總覽

當我們在多選框上設(shè)置了checked 屬性,卻沒有onChange 處理函數(shù)時,會產(chǎn)生"You provided a checked prop to a form field without an onChange handler"錯誤。為了解決該錯誤,可以使用defaultChecked 屬性,或者在表單字段上設(shè)置onChange 屬性。

這里有個例子用來展示錯誤是如何發(fā)生的。

// App.js
export default function App() {
  // ?? Warning: You provided a `checked` prop to a form field
  // without an `onChange` handler. This will render a read-only field.
  // If the field should be mutable use `defaultChecked`.
  // Otherwise, set either `onChange` or `readOnly`.
  return (
    <div>
      <input type="checkbox" id="subscribe" name="subscribe" checked={true} />
    </div>
  );
}

上述代碼片段的問題在于,我們在input表單上設(shè)置了checked屬性,但卻沒有提供onChange事件處理器。這使得inputchecked屬性成為靜態(tài)的。

defaultChecked

解決該錯誤的一種方式是,使用defaultChecked屬性取而代之。

export default function App() {
  return (
    <div>
      <input
        type="checkbox"
        id="subscribe"
        name="subscribe"
        defaultChecked={true}
      />
    </div>
  );
}

defaultChecked屬性為多選框設(shè)置了一個初始值,但是該值不是靜態(tài)的,是可以被更改的。

defaultChecked 屬性常被用于不受控(不被開發(fā)者控制)的多選框。這意味你必須使用ref或者表單元素來訪問表單字段的值。

// App.js
import {useRef} from 'react';
// ??? Example of uncontrolled checkbox
export default function App() {
  const ref = useRef(null);
  const handleClick = () => {
    console.log(ref.current.checked);
  };
  return (
    <div>
      <input
        ref={ref}
        type="checkbox"
        id="subscribe"
        name="subscribe"
        defaultChecked={true}
      />
      <button onClick={handleClick}>Click</button>
    </div>
  );
}

每當你點擊按鈕時,多選框的checked值就會被打印到控制臺上。

onChange

或者,我們可以在input表單字段上設(shè)置onChange屬性,并處理事件。

import {useState} from 'react';
export default function App() {
  const [isSubscribed, setIsSubscribed] = useState(false);
  const handleChange = event => {
    setIsSubscribed(event.target.checked);
    // ??? this is the checkbox itself
    console.log(event.target);
    // ??? this is the checked value of the field
    console.log(event.target.checked);
  };
  return (
    <div>
      <input
        type="checkbox"
        id="subscribe"
        name="subscribe"
        onChange={handleChange}
        checked={isSubscribed}
      />
    </div>
  );
}

我們做的第一件事是將inputchecked值存儲在一個叫做isSubscribed的狀態(tài)變量中。

我們在多選框上設(shè)置了onChange屬性,所以每當值改變時,handleChange函數(shù)就會被調(diào)用。

我們可以通過event對象上的target屬性來訪問多選框。類似地,我們可以通過event.target.checked來訪問多選框的值。

初始值

如果你想為多選框提供一個初始值,只需將它傳遞給useState()鉤子。

import {useState} from 'react';
export default function App() {
  // ??? set checked to true initially
  const [isSubscribed, setIsSubscribed] = useState(true);
  const handleChange = event => {
    setIsSubscribed(event.target.checked);
    // ??? this is the checkbox itself
    console.log(event.target);
    // ??? this is the checked value of the field
    console.log(event.target.checked);
  };
  return (
    <div>
      <input
        type="checkbox"
        id="subscribe"
        name="subscribe"
        onChange={handleChange}
        checked={isSubscribed}
      />
    </div>
  );
}

我們向useState鉤子傳遞了true,所以復選框的初始值將是checked。

翻譯原文鏈接:bobbyhadz.com/blog/react-…

以上就是解決React報錯You provided a `checked` prop to a form field的詳細內(nèi)容,更多關(guān)于React報錯的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React??memo允許你的組件在?props?沒有改變的情況下跳過重新渲染的問題記錄

    React??memo允許你的組件在?props?沒有改變的情況下跳過重新渲染的問題記錄

    使用?memo?將組件包裝起來,以獲得該組件的一個?記憶化?版本,只要該組件的?props?沒有改變,這個記憶化版本就不會在其父組件重新渲染時重新渲染,這篇文章主要介紹了React??memo允許你的組件在?props?沒有改變的情況下跳過重新渲染,需要的朋友可以參考下
    2024-06-06
  • 使用React封裝一個Tree樹形組件的實例代碼

    使用React封裝一個Tree樹形組件的實例代碼

    這篇文章主要介紹了使用React封裝一個Tree樹形組件的實例,文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • 解決React報錯You provided a `checked` prop to a form field

    解決React報錯You provided a `checked` prop&n

    這篇文章主要為大家介紹了React報錯You provided a `checked` prop to a form field的解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • 解析React中useMemo與useCallback的區(qū)別

    解析React中useMemo與useCallback的區(qū)別

    這篇文章主要介紹了React中useMemo與useCallback的區(qū)別,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 使用React實現(xiàn)一個簡單的待辦事項列表的示例代碼

    使用React實現(xiàn)一個簡單的待辦事項列表的示例代碼

    這篇文章我們將詳細講解如何建立一個這樣簡單的列表,文章通過代碼示例介紹的非常詳細,對我們的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • 關(guān)于antd tree和父子組件之間的傳值問題(react 總結(jié))

    關(guān)于antd tree和父子組件之間的傳值問題(react 總結(jié))

    這篇文章主要介紹了關(guān)于antd tree 和父子組件之間的傳值問題,是小編給大家總結(jié)的一些react知識點,本文通過一個項目需求實例代碼詳解給大家介紹的非常詳細,需要的朋友可以參考下
    2021-06-06
  • react組件傳值的四種方法

    react組件傳值的四種方法

    本文主要介紹了react組件傳值的四種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • React實現(xiàn)組件之間狀態(tài)共享的幾種方法

    React實現(xiàn)組件之間狀態(tài)共享的幾種方法

    在開發(fā)現(xiàn)代Web應(yīng)用時,管理組件之間的狀態(tài)共享是一個重要的課題,特別是在使用React這個流行的前端庫時,如何有效地在不同組件之間傳遞狀態(tài),確保應(yīng)用的響應(yīng)性和可維護性,是我們需要掌握的關(guān)鍵技能,在本文中,我們將探討幾種有效的狀態(tài)共享策略,需要的朋友可以參考下
    2025-02-02
  • 基于React封裝一個層次模糊效果的容器組件

    基于React封裝一個層次模糊效果的容器組件

    這篇文章主要為大家詳細介紹了如何基于React封裝一個層次模糊效果的容器組件,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-03-03
  • React-Native 環(huán)境搭建和基本介紹

    React-Native 環(huán)境搭建和基本介紹

    這篇文章主要介紹了React-Native 環(huán)境搭建和基本介紹的相關(guān)資料,包括react native優(yōu)缺點,通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-04-04

最新評論

武宣县| 林口县| 崇州市| 和平县| 横山县| 砀山县| 盐津县| 温州市| 安阳县| 乐陵市| 成安县| 射阳县| 沧州市| 彩票| 鲁山县| 山阳县| 杭锦旗| 新龙县| 陆河县| 宕昌县| 玉屏| 勃利县| 扎赉特旗| 宁国市| 烟台市| 玉山县| 肥东县| 阿荣旗| 石嘴山市| 临泽县| 阿拉善盟| 苍南县| 咸阳市| 藁城市| 商城县| 光山县| 盘山县| 石屏县| 新安县| 商洛市| 全椒县|