5

Voglio misurare la dimensione del contenuto nel mio ScrollView.React Native - Come misurare la dimensione del contenuto in ScrollView?

Pertanto, io sto usando measure da NativeMethodsMixin:

import NativeMethodsMixin from 'NativeMethodsMixin' 

io non sono abbastanza sicuro dove andare da qui, la maggior parte SO messaggi relativi a questo tema sembrano essere superate.

ho capito che ho bisogno di creare un ref alla mia ScrollView (che ho fatto e chiamato _scrollView, posso accedervi utilizzando this.refs._scrollView).

Il problema è che non posso passare this.refs._scrollView in measure in questo modo:

NativeMethodsMixin.measure(this.refs._scrollView, (data) => { 
    console.log('measure: ', data) 
}) 

sto ottenendo il seguente errore poi:

ExceptionsManager.js:61 findNodeHandle(...): Argument is not a component (type: object, keys: measure,measureInWindow,measureLayout,setNativeProps,focus,blur,componentWillMount,componentWillReceiveProps) 

Ho poi cercato di recuperare il nodo reale gestire utilizzando findNodeHandle e passarlo in measure come discusso in questo github issue:

const handle = React.findNodeHandle(this.refs._scrollView) 
NativeMethodsMixin.measure(handle, (data) => { 
    console.log('measure: ', data) 
}) 

Ma questo si traduce nello stesso errore. Qualche idea?

risposta

5
NativeMethodsMixin.measure.call(elementToMeasure, (x, y, width, height) => { 
    ... 
}); 
3

ScrollView definisce un puntello chiamato onContentSizeChange:

<ScrollView 
    onContentSizeChange={(width, height) => { 
    console.log(width, height); 
    }}> 
    {content} 
</ScrollView>