2017-10-16 7 views
0

onFocusハンドラで発生したコンポーネントの状態変更時の出力のreadonlyプロパティを更新しています。コードはChromeとFirefoxでうまく動作しますが、IE 11では2回クリックしてから入力する文字を書き始める必要があります。それを修正するには? 私はここに私のコードの例を作った:https://codesandbox.io/s/94j1j8jnwy入力時のhtml readonly属性がIE 11で初めて変更されない

UPDを:それはハックのように見え、それは少し汚いですがhere

答えて

0

、ほぼ同様の問題を発見し、答えを見つけました。 解決策は、入力からフォーカスを逃し、再度フォーカスを戻すことです。また、refとinputTimeoutを使用しました。

完全なコードがcodesandbox.io

にある

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; }} /> 
関連する問題