我有一個ScrollView作爲我的視圖的根。在裏面,我展示了一堆文本組件。每個組件都有自己的'ref',因此它們是可訪問的。 現在,我通過一個數字的道具,這個數字告訴我我應該滾動到哪個文本。所以我需要先測量它。我嘗試了這四種方法,但他們每個人只給我未定義的值。 任何想法的人?React Native - 道具收到時測量組件
componentWillReceiveProps(nextProps) {
//this is a reference to my 'Text' component
const chapterNo = nextProps.navigation.state.params.chapter;
const chapterRef = this.refs["chapter" + chapterNo];
//method 1:
var RCTUIManager = require('NativeModules').UIManager;
var handle = ReactNative.findNodeHandle(chapterRef);
RCTUIManager.measure(handle, (x, y, width, height, pageX, pageY) => {
console.log(x, y, width, height);
});
//method 2:
NativeMethodsMixin.measure.call(chapterRef, (x, y, width, height) => {
console.log(x, y, width, height);
});
//method 3:
chapterRef.measure((ox, oy, width, height, px, py) => {
console.log(ox, oy, width, height);
});
//method 4 (same as 3 but with setTimout):
setTimeout(() => {
chapterRef.measure((ox, oy, width, height, px, py) => {
console.log(ox, oy, width, height);
});
}, 0);
}
你確定'chapterRef'指向有效的組件嗎?你應該避免使用字符串作爲參考。他們已被棄用。 –
是的,這是我檢查過的東西,我敢肯定,這個裁判是好的,compoent參考是有效的。 我知道字符串不是最好的,但稍後我會更新,一旦我解決了這個問題。 我發現,測量scrollview內的任何東西都是RN中屁股的痛處... –