首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react newforms,设置输入值和焦点字段

react newforms,设置输入值和焦点字段
EN

Stack Overflow用户
提问于 2015-04-29 02:17:33
回答 2查看 522关注 0票数 1

因此,我要做的是将username字段的值重置为'',并将其作为焦点(当我收到从服务器发回的错误时)。

代码语言:javascript
复制
// 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();
EN

回答 2

Stack Overflow用户

发布于 2015-04-29 19:07:12

焦点部分取决于您如何呈现表单,因为您需要访问实际的DOM节点来完成此操作。如果手动渲染,则可以在渲染该字段时传递ref

代码语言:javascript
复制
form.boundField('username').render({attrs: {ref: 'username'}})

然后,当您需要关注该字段时,可以执行React.findDOMNode(this.refs.username).focus()

如果另一个React组件正在为您呈现表单,比如<RenderForm>,那么目前还没有办法获得它最终为每个输入呈现的实际DOM节点。There's an open issue for this

数据更新代码应该可以正常工作,因为form.updateData()应该强制包含表单的组件进行更新。你能提供一个有效的例子吗?

票数 1
EN

Stack Overflow用户

发布于 2015-04-29 07:54:57

这一切都和React有关吗?基本上,在页面加载时检查是否发生了一些错误,如果该值存在,那么您会希望将该值作为属性传递给react组件,以便相应地构建您的UI。

抱歉,这个问题有点模糊,你有很多方法可以解决它。没有具体的反应,因为你说它是从服务器返回的,我假设页面是重新加载的?或者,您正在进行一个返回到服务器的ajax调用(如果是这样的话),将响应记录为React状态中的一个变量,并告诉它如果该变量存在,该如何处理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29926983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档