Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Js div在React组件中滚动到底部_Javascript_Reactjs_Scroll - Fatal编程技术网

Javascript Js div在React组件中滚动到底部

Javascript Js div在React组件中滚动到底部,javascript,reactjs,scroll,Javascript,Reactjs,Scroll,我在编写函数scrollToBot时遇到了一个问题。该函数将由componentDidMount和componentDidUpdate调用。但是div不会滚动。我不知道这个函数出了什么问题。我必须使用JQuery来实现这个函数吗 提前谢谢 scrollToBot(){ console.log(this.textAreaDiv.offsetHeight); // 4000 if(this.textAreaDiv.offsetHeight>3000){ cons

我在编写函数scrollToBot时遇到了一个问题。该函数将由componentDidMount和componentDidUpdate调用。但是div不会滚动。我不知道这个函数出了什么问题。我必须使用JQuery来实现这个函数吗

提前谢谢

scrollToBot(){
    console.log(this.textAreaDiv.offsetHeight); // 4000
    if(this.textAreaDiv.offsetHeight>3000){
        console.log("should scoll!!!!!!!!!!!!!!"); // showed
        this.textAreaDiv.scrollTop=2000;
    }
    console.log('run scrollTo'); // showed
}

componentDidMount(){
    this.scrollToBot();
}

componentDidUpdate(){
    this.scrollToBot();
}

这在React中不起作用,因为它使用虚拟DOM来访问需要使用REF的真实DOM元素,如中所述。这在React中不起作用,因为它使用虚拟DOM,要访问真正的DOM元素,您需要使用JSX中所述的ref,使用react组件的其余部分访问DOM元素

例如:

...
textAreaDiv: null

setInputRef(dom){
    this.textAreaDiv = dom
}

render(){
    <div ref={this.setInputRef}/>
}
。。。
textAreaDiv:null
setInputRef(dom){
this.textAreaDiv=dom
}
render(){
}

`

在JSX中,使用
ref
从react组件的其余部分访问dom元素

例如:

...
textAreaDiv: null

setInputRef(dom){
    this.textAreaDiv = dom
}

render(){
    <div ref={this.setInputRef}/>
}
。。。
textAreaDiv:null
setInputRef(dom){
this.textAreaDiv=dom
}
render(){
}
`