0

使用以下 .js,在浏览器中调整文本区域的大小不会显示任何触摸事件类型,尽管其他事件按预期工作。

class App extends React.Component{
    constructor(){
        super();
        this.state = {currentEvent: "---"};
        this.update = this.update.bind(this)
    }

    update(e){
        this.setState({currentEvent: e.type})
    }


    render(){
        return (
            <div>
                <textarea cols='30' rows='10' 
                    onKeyPress={this.update}
                    onCopy={this.update}
                    onDoubleClick={this.update}
                    onTouchStart={this.update}
                    onTouchMove={this.update}
                    onTouchEnd={this.update}
                    />
                <h1>{this.state.currentEvent}</h1>
            </div>
        )
    }
}

export default App
4

1 回答 1

0

基本上没有浏览器会触发resize. textarea相反,您必须监听用户调整大小后将发生的事件mouseuptouchend但是由于这些事件也可以通过简单地单击来触发textarea,因此您可能希望将元素的新大小与旧大小进行比较,以确定它是否实际调整了大小。

于 2017-03-15T22:38:06.237 回答