wake-up-neo.com

Die 'findNodeHandle'-Methode von React funktioniert nicht mehr

Nach dem Upgrade auf die Version 0.26.0-rc lautet diese Zeile:

React.findNodeHandle(this.refs.myRef)

Wirft diese Fehlermeldung:

Nicht behandelte JS-Ausnahme: _react2.default.findNodeHandle ist kein Funktion.

Ich importiere React mit diesem:

import React from 'react';

Docs noch immer : "Um ein natives Knoten-Handle für eine Komponente zu erhalten, können Sie immer React.findNodeHandle (Komponente) verwenden."

23
Cherniv

Sie müssen auch ReactNative importieren.

import ReactNative from 'react-native';
...
ReactNative.findNodeHandle(...)
31
Daniel Basedow

Jetzt kann die Funktion ohne Objekt verwendet werden:

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

Und nenne es direkt: 

findNodeHandle(this.refs[refName])
42
igor
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)
})
0
jose920405