2017-05-29 68 views
0

我有一個場景,我必須驗證其中一個輸入字段是否有輸入的值。反應驗證是否輸入了其中一個輸入字段

在每個輸入字段的OnBlur事件中,我獲取該值並設置爲狀態,同時我檢查其中一個輸入框中是否有值並設置inputIsReq狀態。我在每個文本字段的必需屬性中使用inputIsReq。在這個改變之後,我的頁面加載非常慢,驗證也不會發生。任何想法解決這個問題?

+0

首先你提供的服務將不會在所有的工作都驗證碼... 1.'渲染(){''不使{' 2.將拋語法錯誤'語法錯誤:相鄰的JSX元素必須封裝在封閉標籤中 請先修復顯而易見的錯誤。 –

+0

哎呀,這是一個意外的錯誤,正在改變我的實際代碼。現在糾正它。謝謝指出。 – Anna

+0

現在更好;)但仍然必須從render()函數 –

回答

1

您的代碼運行緩慢,因爲您正在調用方法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.

+0

謝謝你的幫助 – Anna