我有一個場景,我必須驗證其中一個輸入字段是否有輸入的值。反應驗證是否輸入了其中一個輸入字段
在每個輸入字段的OnBlur事件中,我獲取該值並設置爲狀態,同時我檢查其中一個輸入框中是否有值並設置inputIsReq狀態。我在每個文本字段的必需屬性中使用inputIsReq。在這個改變之後,我的頁面加載非常慢,驗證也不會發生。任何想法解決這個問題?
我有一個場景,我必須驗證其中一個輸入字段是否有輸入的值。反應驗證是否輸入了其中一個輸入字段
在每個輸入字段的OnBlur事件中,我獲取該值並設置爲狀態,同時我檢查其中一個輸入框中是否有值並設置inputIsReq狀態。我在每個文本字段的必需屬性中使用inputIsReq。在這個改變之後,我的頁面加載非常慢,驗證也不會發生。任何想法解決這個問題?
您的代碼運行緩慢,因爲您正在調用方法changeInputValue,而不是將其作爲回調函數傳遞。
這將調用changeInputValue:
錯誤:
正確: onBlur={() => this.changeInputValue("input_4_value", this)}
Abowe例如將通過changeInputValue作爲回調。
你也可以 onBlur={changeInputValue}
但你不能傳遞任何PARAMS回調
你在一個循環中分別致電changeInputValue,因爲它已經改變了狀態,然後部件被重新渲染等等......這也產生警告在控制檯
warning.js:36 Warning: setState(...): Cannot update during an existing state transition (such as within render or another component's constructor). Render methods should be a pure function of props and state; constructor side-effects are an anti-pattern, but can be moved to componentWillMount.
謝謝你的幫助 – Anna
首先你提供的服務將不會在所有的工作都驗證碼... 1.'渲染(){''不使{' 2.將拋語法錯誤'語法錯誤:相鄰的JSX元素必須封裝在封閉標籤中 請先修復顯而易見的錯誤。 –
哎呀,這是一個意外的錯誤,正在改變我的實際代碼。現在糾正它。謝謝指出。 – Anna
現在更好;)但仍然必須從render()函數 –