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

React Native新手遇代码自动添加{" "}及渲染错误求助

问题原因及解决办法

问题本质

这个错误是React Native的核心规则导致的:所有文本内容(包括空格、换行这类空白字符)必须包裹在<Text>组件内。你看到的{" "}是编辑器格式化工具(比如Prettier)自动将组件间的空白字符转换的结果,这些转换后的空白不在<Text>里,就触发了报错。

具体解决步骤

  • 清理非法文本节点
    检查你的App.js,找出所有不在<Text>里的文本(包括空格、换行)。比如错误写法:

    <View>
      欢迎
      <Text>React Native</Text>
    </View>
    

    改成正确写法:

    <View>
      <Text>欢迎</Text>
      <Text>React Native</Text>
    </View>
    

    哪怕是组件之间的换行空格,比如<View>里两个组件之间的换行,也会被视为文本节点,必须处理。

  • 调整编辑器格式化规则
    如果你用的是Prettier,在项目根目录创建或修改.prettierrc文件,添加配置阻止它自动插入{" "}:

    {
      "htmlWhitespaceSensitivity": "strict",
      "jsxWhitespace": "preserve"
    }
    

    或者直接在编辑器设置里关闭格式化工具对JSX空白的自动转换,确保只有<Text>内部的空白才会被处理。

  • 消除组件间隐藏空白
    有时候组件之间的换行、空格肉眼难察觉,比如:

    <View>
      <TouchableOpacity onPress={() => {}}>
        <Text>按钮</Text>
      </TouchableOpacity>
      // 这里的换行空格会被转换成{" "}
      <Text>说明</Text>
    </View>
    

    可以用注释消除空白,或者把组件写在同一行:

    <View>
      <TouchableOpacity onPress={() => {}}>
        <Text>按钮</Text>
      </TouchableOpacity>{/* */}
      <Text>说明</Text>
    </View>
    
  • 临时禁用自动格式化
    紧急情况下,先关闭编辑器的「保存时自动格式化」功能,手动删除所有多余的{" "}, 确保所有文本都在<Text>组件内,再重新编译项目。

内容的提问来源于stack exchange,提问作者javatap

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:33:20