5

Ich möchte die Größe des Inhalts in meinem ScrollView messen.React Native - Wie wird die Größe des Inhalts in ScrollView gemessen?

Daher verwende ich measure von NativeMethodsMixin:

import NativeMethodsMixin from 'NativeMethodsMixin' 

Ich bin nicht ganz sicher, wo man von hier geht, die meisten SO Beiträge zu diesem Thema im Zusammenhang scheinen veraltet zu sein.

Ich verstehe, dass ich ein ref erstellen muß meinen ScrollView (was ich auch tat und rief _scrollView ich es this.refs._scrollView zugreifen kann).

Problem ist, kann ich nicht in this.refs._scrollView in measure wie so passieren einfach:

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

ich folgende Fehlermeldung dann bin immer:

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

Ich habe dann versucht, den eigentlichen Knoten abrufen handle unter Verwendung findNodeHandle und übergebe es in measure wie in diesem github issue diskutiert:

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

Aber das führt zum gleichen Fehler. Irgendwelche Ideen?

Antwort

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

Scroll definiert eine prop genannt onContentSizeChange:

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