Reactnative中ref



ref是什么? ref是組件的特殊屬性,組件被渲染后,指向組件的一個引用。可以通過組件的ref屬性,來獲取真實的組件。 因為,組件並不是真正的DOM節點,而是存在於內存中的一種數據結構,稱為虛擬的DOM,只有當它真正的插入文檔之后,才變為真正的DOM節點。根據React的設計,所以的DOM變動都發生在虛擬DOM上,然后再將實際的部分反映到真實的DOM上--這就是 DOM DIff,它可以提高頁面性能。 如何使用ref呢? ref屬性的定義是在使用組件的部分,而組件的方法之類的都是在定義組件的里面就有的。render方法被調用的時候,組件就會被渲染。渲染完成之后,就可以獲取這個組件實例啦,因而就可以調用組件實例里的方法或者變量啦。 定義組件的方式一 ref="reftest" this.refs.reftest 或者 this.refs[reftest] , 這兩種方式都可以獲得當前的組件。 獲得當前組件的大小, let size = this.refs.reftest.getSize(); 定義組件的方式二 ref={reftest=>this.reftest=reftest} [當組件被渲染后,ref屬性reftest就有值啦,然后我們將它賦值給this.reftest 。接下來就可以使用this.reftest來獲取相應的方法] this.reftest 或者 this.refs['reftest'] , 這兩種方式都可以獲得當前的組件。 這種方式定義,就可以這樣使用,var size = this.reftest.getSize();

<Text style={{fontSize:20}}
onPress={()=>{
var size = this.refs.reftest.getSize();
this.setState({
size:size,
})
}
}
>
獲取氣球大小:{this.state.size}

</Text>
<State ref="reftest">

</State>

State中的方法:

export default class State extends Component {

constructor(props){
super(props);
this.state={
size:60,
}
}
getSize(){
return this.state.size;
}
render() {
return <View style={{flex: 1}}>
<NarBar onSelect={() => {
Actions.pop()
}} title='下一頁'/>
<Text style={{fontSize:20}}
onPress={()=>{
this.setState({
size:this.state.size+10
})
}}
>
變大變大
</Text>

<Text style={{fontSize:20}}
onPress={()=>{
this.setState({
size:this.state.size-10
})
}}
>
變小變小
</Text>
<Image style={{width:this.state.size,height:this.state.size,backgroundColor:'red'}}/>
</View>
}

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM