Reactのチュートリアルを終え、ひととおり基本的な概念を理解したので、本来の目的であったアプリ開発に向けてReact Nativeの勉強を始めた。
勉強を進める中で、画像の表示方法だけでも通常のReactとだいぶ違いがあったので、まずはReact Nativeにおける画像の表示方法をここにまとめる。
Imageコンポーネントのインポート
画像を表示する際はJSXでImageタグを使うのだが、これにあたってまずImageコンポーネントをインポートする必要がある。
import React, { Component } from 'react';
import { View, Image } from 'react-native';
ローカルに保存した画像を表示する
React Nativeでは、ローカルファイルとオンライン上のファイル、それぞれでファイルパスの指定方法が違う。
ローカルに保存した画像を表示する場合は、以下のとおりrequire()を使用し相対パスで指定する。
また、Imageコンポーネントは必ずサイズの指定が必要となるため、以下の例ではstyle属性に直接値を指定している。
import React, { Component } from 'react';
import { View, Image } from 'react-native';
export default class App extends Component {
render() {
return (
<View>
<Image
style={{
width: 64,
height: 64
}}
source={require('./assets/sample.png')}
/>
</View>
);
}
}
オンライン上の画像を表示する
オンライン上のファイルを表示する場合は、以下のとおり絶対パスで指定する。
import React, { Component } from 'react';
import { View, Image } from 'react-native';
export default class App extends Component {
render() {
return (
<View>
<Image
style={{
width: 64,
height: 64
}}
source={{uri: 'https://example.com/img/sample.png'}}
/>
</View>
);
}
}
なお、iOSではセキュリティ上の理由でHTTP通信を原則として許可していないため、HTTPS経由での参照が推奨される。
XCodeの設定によりHTTP通信を許可することも可能だが、アプリをリリースする際にAppleに対しHTTPSを利用できない理由を説明する必要があるとのことなので、極力HTTPS通信を利用した方が良い。