簡體   English   中英

反應新形式,設置輸入值和焦點字段

[英]react newforms, set input value and focus field

所以我想做的是將用戶名字段的值重置為''並集中精力(一旦我收到從服務器發回的錯誤)。

// get the form ref
var form = this.refs.loginForm.getForm();
// reset username field value (this actually gets updated if i check 
// it in the console but the UI won't re-render
form.updateData({username: ''}, {validate: false})
// focus the username input (ofc doesnt work at all)
form.fields.username.focus();

重點部分取決於您如何呈現表單,因為您需要訪問真實的DOM節點才能執行此操作。 如果您是手動渲染,則可以在渲染此字段時傳遞ref

form.boundField('username').render({attrs: {ref: 'username'}})

然后,當您需要關注該字段時,可以執行React.findDOMNode(this.refs.username).focus()

如果另一個React組件正在為您呈現表單,例如<RenderForm> ,則目前尚無一種方法可以到達每個輸入最終呈現的實際DOM節點。 這有一個未解決的問題


數據更新代碼應該可以正常工作,因為form.updateData()應該強制包含表單的組件進行更新。 你能提供一個可行的例子嗎?

這與React有什么關系嗎? 基本上在頁面加載時檢查是否發生了某些錯誤(如果存在該值),而不是您希望將該值作為屬性傳遞給react組件以相應地構建UI。

抱歉,這個問題有點含糊,您可以采用很多方法來解決。 因為您說它是從服務器返回的(我假設頁面會重新加載),所以您的反應不是很具體嗎? 還是在這種情況下,您正在進行一次要返回到服務器的ajax調用,請將響應作為變量記錄在React的狀態下,並告訴它在存在該變量的情況下該怎么做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM