20

升級後0.26.0-RC版本,該行:陣營」 findNodeHandle方法停止工作

React.findNodeHandle(this.refs.myRef) 

拋出此錯誤消息:

未處理的JS例外:_react2.default。 findNodeHandle不是 函數。

我進口這個陣營:

import React from 'react'; 

文檔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) 
})