React中不受控制的組件是由DOM本身處理形式數據的那些,而不是由組件的狀態管理。要創建一個不受控制的組件,您可以執行以下步驟:
使用defaultValue
Prop :而不是使用value
來設置表單元素的初始值(這將使它受到控制),而是使用defaultValue
。例如,對於輸入字段,您將要這樣做:
<code class="jsx"><input type="text" defaultvalue="Initial Value"></code>
通過參考訪問數據:由於數據未由React的狀態管理,因此您需要在需要時訪問當前值的方法。您使用React的ref
系統來創建對DOM節點的引用。這是您的工作方式:
<code class="jsx">class UncontrolledForm extends React.Component { constructor(props) { super(props); this.inputRef = React.createRef(); } handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', this.inputRef.current.value); } render() { return ( <form onsubmit="{this.handleSubmit}"> <input type="text" defaultvalue="Initial Value" ref="{this.inputRef}"> <button type="submit">Submit</button> </form> ); } }</code>
通過遵循以下步驟,您可以在React中創建一個不受控制的組件,其中表單數據由DOM直接處理。
在React應用程序中使用不受控制的組件帶有幾個好處:
要訪問React中不受控制的組件的值,您通常使用ref
系統。您可以做到這一點:
創建一個參考:在組件中,使用React.createRef()
或功能組件中的useRef
掛鉤創建REF。
<code class="jsx">// In a class component constructor(props) { super(props); this.inputRef = React.createRef(); } // In a functional component const inputRef = useRef(null);</code>
將REF附加到DOM元素:呈現您的表單元素時,將ref
傳遞給它。
<code class="jsx">// Class component <input type="text" defaultvalue="Initial Value" ref="{this.inputRef}"> // Functional component <input type="text" defaultvalue="Initial Value" ref="{inputRef}"></code>
訪問值:您可以在需要時訪問未控制的組件的值,例如表單提交或任何其他事件。使用ref.current.value
獲取當前值。
<code class="jsx">// In a class component handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', this.inputRef.current.value); } // In a functional component const handleSubmit = (event) => { event.preventDefault(); console.log('Input Value:', inputRef.current.value); }</code>
通過遵循以下步驟,您可以有效地訪問React中不受控制的組件的值。
在受控組件和不受控制的組件之間進行選擇取決於您項目的特定需求和復雜性。在某些情況下,您可能更喜歡不受控制的組件:
通常,如果您需要對形式數據及其驗證的更多控制,則受控組件是更好的選擇。但是,對於更簡單或至關重要的方案,不受控制的組件可能非常合適。
以上是您如何在React中創建不受控制的組件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!