私は自分のビューのルートとしてScrollViewを持っています。その中にはたくさんのTextコンポーネントがあります。各コンポーネントには独自の 'ref'があり、アクセス可能です。 今、数字の小道具を渡しています。その数字は、どのテキストをスクロールするかを教えてくれます。だから私は最初にそれを測定する必要があります。私はこれらの4つのアプローチを試しましたが、それぞれが私に未定義の値だけを与えています。 アイデアは誰ですか?小道具を受け取ったときにネイティブメジャーコンポーネントに反応する
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'が有効なコンポーネントを指していますか?あなたは、文字列リテラルを参照として避けるべきです。彼らは廃止されました。 –
ええ、これは私がチェックしたものです。このリファレンスは大丈夫であり、妥当なリファレンスが有効であると確信しています。 私は文字列が最高ではないことを知っていますが、この問題を解決したら、後でそれを更新します。 スクロールビューの中にあるものを測定することは、RNのお尻の痛みです... –