React Native 和 Expo - SVG 不会在 iOS 设备上呈现
React Native & Expo - SVG won't render on iOS device
我已经使用 'create-react-native-app' 开始了一个项目,但我不知道如何渲染 .svg 文件。我尝试了 all svg 库,如 react-native-svg-uri、react-native-svg-image、msvgc(将 .svg 转换为反应组件与 react-native-svg)和 none 这些帮助。
有时,当我 运行 在我的 phone 上预览应用程序(带有 expo)时,它会立即崩溃,有时它只显示加载动画 - 而不是显示实际的 .svg 图像。
没有错误 - 它根本不会呈现 svgs。
例如这段代码显示加载动画
import SVGImage from 'react-native-svg-image';
<View style={styles.slide1}>
<SVGImage
style={{ width: 80, height: 80 }}
source={{uri:'https://fluent-panda.appspot.com.storage.googleapis.com/dumbbell.svg'}}
/>
<Text style={styles.text}>Hello</Text>
</View>
提前致谢!
这似乎是未在 iOS 上测试的 react-native-svg-image 库的问题。当你在 iOS 上的 WebView
上使用 html
道具时,你不能设置 startInLoadingState={true}
,否则加载指示器永远不会消失。这是一个在 react-native 中已经存在很长时间的行为,请参阅 issue 542 了解更多信息——虽然它肯定不是理想的,但希望有人阅读并修复它!
您可以通过在组件上将 showWebviewLoader
属性设置为 false
来解决这个问题。
<SVGImage
showWebviewLoader={false}
style={{ width: 80, height: 80 }}
source={{uri:'https://fluent-panda.appspot.com.storage.googleapis.com/dumbbell.svg'}}
/>
我已经使用 'create-react-native-app' 开始了一个项目,但我不知道如何渲染 .svg 文件。我尝试了 all svg 库,如 react-native-svg-uri、react-native-svg-image、msvgc(将 .svg 转换为反应组件与 react-native-svg)和 none 这些帮助。 有时,当我 运行 在我的 phone 上预览应用程序(带有 expo)时,它会立即崩溃,有时它只显示加载动画 - 而不是显示实际的 .svg 图像。 没有错误 - 它根本不会呈现 svgs。
例如这段代码显示加载动画
import SVGImage from 'react-native-svg-image';
<View style={styles.slide1}>
<SVGImage
style={{ width: 80, height: 80 }}
source={{uri:'https://fluent-panda.appspot.com.storage.googleapis.com/dumbbell.svg'}}
/>
<Text style={styles.text}>Hello</Text>
</View>
提前致谢!
这似乎是未在 iOS 上测试的 react-native-svg-image 库的问题。当你在 iOS 上的 WebView
上使用 html
道具时,你不能设置 startInLoadingState={true}
,否则加载指示器永远不会消失。这是一个在 react-native 中已经存在很长时间的行为,请参阅 issue 542 了解更多信息——虽然它肯定不是理想的,但希望有人阅读并修复它!
您可以通过在组件上将 showWebviewLoader
属性设置为 false
来解决这个问题。
<SVGImage
showWebviewLoader={false}
style={{ width: 80, height: 80 }}
source={{uri:'https://fluent-panda.appspot.com.storage.googleapis.com/dumbbell.svg'}}
/>