首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >反应材料UI重置值

反应材料UI重置值
EN

Stack Overflow用户
提问于 2016-02-02 11:24:53
回答 4查看 22.9K关注 0票数 6

我用的是有反应的材料界面。

在没有控制台错误的情况下,我似乎无法在submit上重置表单。

如果我有:<TextField defaultValue={myComment.title} refs="title" />

在提交时,如果执行以下操作:this.refs.title.setValue(''),将在控制台中得到以下错误

警告:不推荐使用setValue()方法。而是使用defaultValue属性。或者使用TextField作为具有value属性的受控组件。

所以我试着去做:this.refs.title.defaultValue = '',但那不管用。

我在想我必须做一个handleChange活动吗?但是当我想要做的就是清除输入字段时,设置它似乎非常痛苦。

提前谢谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-02-02 11:38:48

因此,使用这个可以帮助您轻松实现所需的组件(即使有点冗长)的最佳方法是将valueonChange属性传递给TextField.您可以从当前组件处理状态上的value,甚至可以将父组件传递为道具。

一个简单的例子:

代码语言:javascript
运行
复制
handleInputChange(event) {
    this.setState({
        name: event.target.value
    })
}


cleanInput() {
    this.setState({
        name: ''
    })
}

<TextField value={this.state.name} onChange={this.handleInputChange.bind(this)} />
票数 13
EN

Stack Overflow用户

发布于 2018-02-07 20:04:06

您可以简单地使用getInputNode().value=""

所以在你的例子中,它将是this.refs.title.getInputNode().value=""

票数 3
EN

Stack Overflow用户

发布于 2021-10-14 17:33:16

试着重新设置您的TextField、道具和状态:

代码语言:javascript
运行
复制
reset = ()=> {
       var  m = "";
       document.getElementById('h1').value = m;
}

它只会重置您的textField,如果您也想重置状态或道具,那么只需在其中添加setState()方法即可。

代码语言:javascript
运行
复制
reset = ()=> {
           setState({
               firtName: '',
               lastName: ''
             })
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35152123

复制
相关文章

相似问题

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