2017-10-16 31 views

回答

0

找到了答案,雖然它看起來像一個黑客,這是一個有點髒。 的解決方案是從輸入鬆散焦點,並再次返回。此外,我用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