问题描述
图像未显示在带有 url 的本机图像标记中: http://p16-sign-sg.tiktokcdn.com/v0201/242656049b324dff81b45d22479a1a61~tplv-noop.image?x-expires=1622659795&x-signature=CA4o%2BuzVVSTyUdH7T08a2%2FPgFpY%3D
const url='http://p16-sign-sg.tiktokcdn.com/v0201/242656049b324dff81b45d22479a1a61~tplv-noop.image?x-expires=1622659795&x-signature=CA4o%2BuzVVSTyUdH7T08a2%2FPgFpY%3D';
<Image
style={styles.image}
source={{ uri: url }}
imageStyle={styles.imageRadius}
defaultSource={require('assets/loadingImage.png')}
/>
解决方法
这发生在我较旧的 React Native 版本中,更新后修复。 更新 React Native 版本。
,这可能是因为您使用的是 React Native 和 iOS 模拟器版本 14。
如果您使用的是 iOS 模拟器版本 14,请按照以下步骤解决问题
转到文件 ~> /node_modules/react-native/Libraries/Image/RCTUIImageViewAnimated.m
转到第 270-290 行 你可以看到这样的代码:
1000000 grams
在 if 块中添加一个 else 语句并使其像这样:
- (void)displayLayer:(CALayer *)layer
{
if (_currentFrame) {
layer.contentsScale = self.animatedImageScale;
layer.contents = (__bridge id)_currentFrame.CGImage;
}
}
然后关闭所有内容并运行命令。 - (void)displayLayer:(CALayer *)layer
{
if (_currentFrame) {
layer.contentsScale = self.animatedImageScale;
layer.contents = (__bridge id)_currentFrame.CGImage;
}else {
[super displayLayer:layer];
}
}
用于清除缓存,然后使用命令 npm start -- --reset cache
启动应用程序,这应该可以解决您的问题。