HTML只读输入没有变化第一次属性在IE 11

HTML只读输入没有变化第一次属性在IE 11

问题描述:

我更新的输出在其上的onfocus处理程序发生组件的状态改变的只读属性。该代码工作正常,在Chrome和Firefox,但是,IE 11,你必须点击两次,然后开始写东西输入。如何解决它? 我做了我的代码在这里一个例子:https://codesandbox.io/s/94j1j8jnwyHTML只读输入没有变化第一次属性在IE 11

UPD:发现几乎类似的问题here

找到了答案,虽然它看起来像一个黑客,这是一个有点脏。 的解决方案是从输入松散焦点,并再次返回。此外,我用ref输入和setTimeout。

handleOnFocus() { 
    console.log('focused!'); 
    if (this.state.readOnly) { 
    this.setState({ readOnly: false },() => { 
     this.input.blur(); 
     setTimeout(() => this.input.focus(), 0); 
    }); 
    } 
} 

// ... 

<input 
    ... 
    ref={(input) => { this.input = input; }} /> 

的完整代码在codesandbox.io