亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ReactJS如何滾動到一個元素

ReactJS如何滾動到一個元素

POPMUISE 2019-12-09 15:56:59
我有一個聊天小部件,每次我向上滾動時,它都會拉出一系列消息。我現在面臨的問題是,在加載消息時,滑塊保持固定在頂部,我希望它專注于上一個數組中的最后一個索引元素。我發現可以通過傳遞索引來創建動態引用,但是我還需要知道要使用哪種滾動功能才能實現這一點 handleScrollToElement(event) {    const tesNode = ReactDOM.findDOMNode(this.refs.test)    if (some_logic){      //scroll to testNode          }  }  render() {    return (      <div>        <div ref="test"></div>      </div>)  }
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

我可能參加聚會的時間很晚,但是我試圖以適當的方式對項目實施動態引用,并且找到了所有答案,直到知道并不能完全滿足我的喜好,所以我想出了一個我認為是的解決方案簡單,并使用本機和推薦的反應方式來創建引用。


有時,您會發現文檔的編寫方式假定您具有已知的視圖數量,并且在大多數情況下此數量是未知的,因此在這種情況下,您需要一種解決問題的方法,對所需數量的未知視圖創建動態引用在課堂上展示


因此,我能想到并能完美工作的最簡單的解決方案是執行以下操作


class YourClass extends component {


state={

 foo:"bar",

 dynamicViews:[],

 myData:[] //get some data from the web

}


inputRef = React.createRef()


componentDidMount(){

  this.createViews()

}



createViews = ()=>{

const trs=[]

for (let i = 1; i < this.state.myData.lenght; i++) {


let ref =`myrefRow ${i}`


this[ref]= React.createRef()


  const row = (

  <tr ref={this[ref]}>

<td>

  `myRow ${i}`

</td>

</tr>

)

trs.push(row)


}

this.setState({dynamicViews:trs})

}


clickHandler = ()=>{


//const scrollToView = this.inputRef.current.value

//That to select the value of the inputbox bt for demostrate the //example


value=`myrefRow ${30}`


  this[value].current.scrollIntoView({ behavior: "smooth", block: "start" });

}



render(){


return(

<div style={{display:"flex", flexDirection:"column"}}>

<Button onClick={this.clickHandler}> Search</Button>

<input ref={this.inputRef}/>

<table>

<tbody>

{this.state.dynamicViews}

<tbody>

<table>

</div>



)


}


}


export default YourClass

這樣,滾動條將轉到您要查找的任何行。


歡呼,希望對別人有幫助


查看完整回答
反對 回復 2019-12-09
  • 3 回答
  • 0 關注
  • 2623 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號