20

Nach dem Upgrade auf 0.26.0-rc Version aufgehört zu arbeiten, diese Zeile:Reagieren‘findNodeHandle Methode

React.findNodeHandle(this.refs.myRef) 

wirft diese Fehlermeldung:

Unhandle JS Ausnahme: _react2.default. findNodeHandle ist keine Funktion.

ich den Import mit dieser Reaktion:

import React from 'react'; 

Docs still say: „Wie immer eine native Node-Handle für eine Komponente zu erhalten, können Sie React.findNodeHandle (Komponente) verwenden. "

+0

Version '0,26-rc' von was? Welche Dokumente sagen das? – loganfsmyth

+0

Reaction Native, https://github.com/facebook/react-native – Cherniv

+0

Können Sie irgendwie mehr Code zeigen? –

Antwort

24

Sie müssen auch ReactNative importieren.

import ReactNative from 'react-native'; 
... 
ReactNative.findNodeHandle(...) 
33

Jetzt kann die Funktion ohne Objekt verwendet werden:

import { 
    ... 
    findNodeHandle, 
    ... 
} from 'react-native'; 

Und es direkt anrufen:

findNodeHandle(this.refs[refName]) 
+0

Cool, nette Idee! – Cherniv

0
import { 
    ... 
    findNodeHandle, 
} from 'react-native'; 

var RCTUIManager = require('NativeModules').UIManager; 

var view = this.refs['yourRef']; // Where view is a ref obtained through <View ref='ref'/> 
RCTUIManager.measure(findNodeHandle(view), (fx, fy, width, height, px, py) => { 
    console.log('Component width is: ' + width) 
    console.log('Component height is: ' + height) 
    console.log('X offset to frame: ' + fx) 
    console.log('Y offset to frame: ' + fy) 
    console.log('X offset to page: ' + px) 
    console.log('Y offset to page: ' + py) 
})