【React Native】特定のコンポーネントの高さを取得する

タイトル通り、React Native で開発中のアプリで、ある特定の要素の高さを取得したかったのでその手順をまとめ。

実装には下記の記事を参考にさせていただきました。

React Nativeで任意のコンポーネントのサイズを取得する方法 – Qiita
https://qiita.com/karadaharu/items/07364597387e988c2648

 

で、要素の高さを取得するには onLayout プロパティを使います。
サンプルコードは下記のとおりです。

getHeight = e => {
  console.log(`height: ${e.nativeEvent.layout.height}`);
}
<View onLayout={this.getHeight}>
  ......
</View>

高さを取得したい要素に onLayout プロパティで getHeight() 関数を指定しています。
あとは、getHeight() 関数内で、e から要素の高さを取得します。
サンプルコードでは、取り合えず console.log() で値を確認しているだけですが、実際には state に保存した方が後々扱いやすいと思います。

なお、今回は使っていませんが、他にも要素の幅を取得したり、要素の x、y を取得することもできるようでした。
使い方は下記のとおりです。

// 要素の幅を取得
e.nativeEvent.layout.width

// 要素の高さを取得
e.nativeEvent.layout.height

// x 座標を取得
e.nativeEvent.layout.x

// y 座標を取得
e.nativeEvent.layout.y

処理としては以上です!

 

以上、React Native で特定のコンポーネントの高さを取得する方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG