React-Bootstrap 输入聚焦但无法输入

React-Bootstrap input focused but cannot type

我正在努力解决的问题是,每当我单击 budget-glyph-clear 时,我仍然希望能够(我是)专注于输入字段并在其中输入内容。当输入应该被聚焦时,我看到输入类名对应于 formControlDisplayStyle 样式,但我没有看到输入上的插入符号(我无法输入)

这是我的 FormControl

            <InputGroup className={formControlDisplayStyle}>
                <FormControl 
                    className='budget-input-field'
                    pattern='[0-9]*'
                    type='text'
                    placeholder={this.props.placeholder}
                    onChange={this.onInputChange}
                    value={this.props.value}
                    onFocus={this.onFocus}
                    onBlur={this.onBlur}
                    autoFocus={this.props.focused}
                />

                <InputGroup.Addon className='clear-sign budget-addon' style={hideClearButton}>
                    <div className='budget-glyph budget-glyph-clear' onClick={this.onClearClick} />
                </InputGroup.Addon>

            </InputGroup>

有人能解释一下为什么我无法在聚焦字段上键入或看到插入符号吗?

好吧,经过一番挣扎,我意识到发生了什么事。我也尝试根据许多 google 搜索建议添加 ref,但没有。

下面的代码实际上会让输入集中于我的意志!

private input: HTMLInputElement;
public componentDidUpdate() {
    if (this.props.focused) {
        this.input.focus();
    }
}

渲染方法

<InputGroup className={formControlDisplayStyle}>
    <FormControl 
        className='budget-input-field'
        pattern='[0-9]*'
        type='text'
        placeholder={this.props.placeholder}
        onChange={this.onInputChange}
        value={this.props.value}
        onFocus={this.onFocus}
        onBlur={this.onBlur}
        inputRef={this.updateInputRef}
    />

    <InputGroup.Addon className='clear-sign budget-addon' style={hideClearButton}>
        <div className='budget-glyph budget-glyph-clear' onClick={this.onClearClick} />
    </InputGroup.Addon>

</InputGroup>

有魔法的私有方法

private updateInputRef = (ref: HTMLInputElement) => {
    this.input = ref;
}