auの日記

プログラミング初心者の日記。(auはハンドルネームです)

React Nativeのrequireで変数は使えない!

auです。

次のスクリーンに画像パスを渡して画像を表示しようとしたのですが、うまく行かなかったのでメモで残そうと思います。

ちなみにアプリはクイズのようなアプリを想定していて、正解なら○、不正解なら×の画像を表示します。



前のスクリーンのボタンからデータを渡しています。

できなかったパターン

const navigation = this.props.navigation;
const correctImage = require(navigation.state.params.imagePath);

結果
f:id:program-shoshinsya:20200104103056p:plain

このままcorrectImageと言う変数をrequireの引数に渡すとエラーが起きるみたいです。

解決策

分岐させてあげればいい。

この際に、imagePathはtrueとfalseで判定されるので、パスを入力していた部分を「true」に変更しています。

const navigation = this.props.navigation;
const correctImage = navigation.state.params.imagePath ? 
require('./../../../image/correct.jpg') : require('./../../../image/incorrect.jpg');

今度はちゃんと表示することができました。