20

После обновления до 0.26.0-гс версии, эта строка:Реагируйте метод findNodeHandle перестал работать

React.findNodeHandle(this.refs.myRef) 

Броски это сообщение об ошибке:

Unhandled JS Исключение: _react2.default. findNodeHandle не является функцией .

Я импортирования Реагировать с этим:

import React from 'react'; 

Docs still say: «Как всегда, чтобы получить родной дескриптор узла для компонента, вы можете использовать React.findNodeHandle (компонент). "

+0

Версия '0,26-rc' чего? Какие документы это говорят? – loganfsmyth

+0

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

+0

Любой способ показать еще какой-нибудь код? –

ответ

24

Вам также необходимо импортировать ReactNative.

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

Теперь функция может быть использована без объекта:

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

И называют это непосредственно:

findNodeHandle(this.refs[refName]) 
+0

Прохладный, хорошая идея! – 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) 
}) 

 Смежные вопросы

  • Нет связанных вопросов^_^