You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用React-Native-svg的SVG Pattern作背景时运行官方示例出现白屏

问题原因

你当前代码的核心问题是<Defs>标签内定义的Pattern仅为可复用的配置项,本身不会直接渲染到视图上,你没有使用该Pattern填充任何可见的SVG图形元素,导致整个SVG无可见渲染内容,因此出现白屏。

问题排查方法
  • 检查Pattern引用逻辑:所有在<Defs>中定义的资源,必须通过fill="url(#PatternID)"或stroke="url(#PatternID)"的形式绑定到可见的SVG元素(如Rect、Circle、自定义Path等)上才会生效
  • 检查尺寸配置:确认Pattern的width、height、viewBox属性和引用它的图形尺寸匹配,避免图案被缩放至不可见
  • 检查容器样式:确认Svg组件及其父容器的宽高为有效值,没有被样式压缩为0
修复后的完整代码
<View
    style={{
      paddingTop: 20,
      height: '100%',
      flex: 1,
      backgroundColor: 'white'
    }}>
    <Svg width="100%" height="100%" viewBox="0 0 800 400">
        <Defs>
            <Pattern
                id="TrianglePattern"
                patternUnits="userSpaceOnUse"
                x="0"
                y="0"
                width="100"
                height="100"
                viewBox="0 0 10 10">
                <Path d="M 0 0 L 7 0 L 3.5 7 z" fill="red" stroke="blue" />
            </Pattern>
        </Defs>
        {/* 新增一个铺满整个SVG画布的矩形,用定义好的Pattern填充 */}
        <Rect x="0" y="0" width="800" height="400" fill="url(#TrianglePattern)" />
    </Svg>
</View>
补充说明

如果需要调整图案的疏密程度,修改Pattern的width和height属性即可,数值越小图案越密集,数值越大图案越稀疏。

内容的提问来源于stack exchange,提问作者four-eyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:36:05