ただの以下の日本語訳です。
参照:https://medium.com/@jQN/fix-images-not-loading-in-ios-14-react-native-723534305e46
問題について
特定バージョン(僕の場合0.62.2)のReact NativeでXcodeを使用した場合、画像が表示されない問題が確認されています。ReactNativeのバージョンをあげると解決しますが、依存関係の問題でバージョンをあげられない場合の一時的な解決です。
変更する部分
vi node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
# code node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
// 270行目あたり
#pragma mark - CALayerDelegate
- (void)displayLayer:(CALayer *)layer
{
if (_currentFrame) {
layer.contentsScale = self.animatedImageScale;
layer.contents = (__bridge id)_currentFrame.CGImage;
}
}
ここにelseを追加
node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
//
#pragma mark - CALayerDelegate
- (void)displayLayer:(CALayer *)layer
{
if (_currentFrame) {
layer.contentsScale = self.animatedImageScale;
layer.contents = (__bridge id)_currentFrame.CGImage;
} else {
[super displayLayer:layer];
}
}
パッチの作成
npm install patch-package
# yarn install
npx patch-package react-native
# patch-package react-native --use-yarn yarnの場合
# patch-package 6.2.2
# • Creating temporary folder
# • Installing react-native@0.62.2 with yarn
# • Diffing your files with clean files
# ✔ Created file patches/react-native+0.62.2.patch
patches配下に作成されるのでgit add
git add patches/*
package.jsonに追加
package.json
"scripts": {
...
"postinstall": "patch-package",
}