在模糊时使用自定义自动完成功能来响应Material UI文本字段

时间:2019-04-19 21:18:58

标签: javascript reactjs material-ui

我已经使用React Material UI实现了自定义自动完成功能,如下所示:

handleTextChange(e, key){
    dataObject[key] = e.currentTarget.value;
    //Call reducer to openAutoComplete
    //Call reducer to update state of dataObject
}
handleTextOnBlur(e, key){
    //Set the autocomplete to off since it's being used in a list of textFields
}
render(){
    return (
        <div>
            {Object.keys(dataObject).map(function(key){
                return (
                    <TextField
                        id={key}
                        defaultValue={dataObject[key] || ""}
                        onChange={(e)=>{this.handleTextChange(e, key)}}
                        onFocus={(e)=>{this.handleTextFocus(e, key)}}
                        onBlur={(e)=>{this.handleTextOnBlur(e, key)}}
                    />
                )
            }, this);}

            ...
            <Popper
            anchorEl={this.props.autocomplete}
            open={Boolean(this.props.autocomplete)}
            >
                {this.suggestions.map(function(s){
                    return (<ListItem onClick={this.makeSelection}> {suggesion.text} </ListItem>)
                }, this)}
            </Popper>
        </div>
    )
}

我面临的问题是,当我在建议列表中单击以进行选择时,关闭自动完成的onBlur事件被触发。在建议列表中单击时如何防止onBlur,但如果是常规onBlur,如何保持默认的模糊行为?

0 个答案:

没有答案