Reactjs 如何清除物料ui自动完成字段中的文本?

Reactjs 如何清除物料ui自动完成字段中的文本?,reactjs,material-ui,Reactjs,Material Ui,我有一个自动完成字段,它使用 searchText = {this.state.searchText} 像这样, <AutoComplete floatingLabelText='agent input' ref='agentInput' hintText="type response" multiLine = {true} fullWidth = {true} s

我有一个自动完成字段,它使用

        searchText = {this.state.searchText}
像这样,

      <AutoComplete
        floatingLabelText='agent input'
        ref='agentInput'
        hintText="type response"
        multiLine = {true}
        fullWidth = {true}
        searchText = {this.state.searchText}
        onNewRequest={this.sendAgentInput}
        dataSource={this.agentCommands}
      />

在每次输入更新时尝试更改搜索文本:

onUpdateInput={this.handleUpdateInput}
每当用户更改输入时,此函数应更改searchText:

handleUpdateInput(text) {
  this.setState({
    searchText: text
  })
}
我的代码如下所示(ES6):

类MyComponent扩展组件{
建造师(道具){
超级(道具)
this.dataSource=['a','b','c']
此.state={
搜索文本:“”
}
}
handleUpdateInput(t){this.setState({searchText:t})}
handleSelect(t){this.setState({searchText:'})}
渲染(){
返回
}      
}
在这里,当用户按enter键或从列表中选择某个项目时,我想清除输入(因此我在handleSelect中清除searchText),但每次输入更新(handleUpdateInput)时,我也会更改searchText的状态

我希望它对你有用

试试这个:

this.setState({ searchText: "\r" });

因为我认为函数应该测试字符串的长度(BUG?

你能为此添加一个提琴吗?几个月前,谢谢你的回复!我会检查一下。这不起作用,因为他们使用新的menuCloseDelay属性添加了close menu Timeout,另一种方法是在清除搜索文本时设置Timeout,使其延迟等于默认值(300,或您为延迟设置的任何值)。任何对/why/感兴趣的人都需要onUpdateInput处理程序<代码>状态。搜索文本
为“”。它从不会改变-您在框中输入文本/进行选择,道具将更新。然后尝试触发状态更改/text以重置为
'
,但它已经是该值。所以,什么也没发生<上面的code>onUpdateInput处理程序确保组件的状态。searchText跟踪当前输入值。然后,当您设置为
''
时,会检测到更改并实际执行操作。文档中没有类似
searchText
的道具或在定义
时提到的任何内容。也许你指的是任何可用的等价物
this.setState({ searchText: "\r" });