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

浏览器提示div语法错误,添加Loader加载器函数代码后出现异常,请问问题出在哪里?

你的浏览器报错原因及修复方案

嘿,我帮你定位到问题了——添加Loader代码后出现的语法错误和异常,主要是JSX写法和属性使用不规范导致的,具体问题和修复方法如下:

  • 三元运算符后的注释与内容缺失问题
    在JSX的表达式({}包裹的区域)里,不能使用普通的//单行注释,必须用{/* 注释内容 */}这种JSX专用注释格式。更关键的是,你在三元运算符的:后面只放了注释,没有提供有效的React节点(比如组件、DOM元素或者null),这直接违反了JSX的语法规则,浏览器会识别为语法错误。

  • img标签的loading属性值不合法
    原生HTML的loading属性只接受"lazy"、"eager"或"auto"这三个字符串值,你这里传入了布尔值loading,不符合属性规范,浏览器会抛出属性值无效的警告。

  • 潜在的loader变量未定义问题
    如果loader这个图片路径变量没有被正确导入或定义(比如没写import loader from './loader.gif'这类代码),还会出现运行时引用错误,导致加载器图片无法显示。

修正后的代码示例

function App(){ 
  const [loading, setLoading] = useState(false); 
  // 先确保loader变量已正确定义,比如从本地导入图片
  import loader from './path/to/your-loader-image.gif';

  useEffect(() => { 
    setLoading(true) 
    setTimeout(() => { 
      setLoading(false) 
    }, 5000) 
  }, []) 

  return ( 
    <div className="App"> 
      { loading ? 
        <img src={loader} alt="加载中..." loading="eager" /> 
        : 
        {/* 这里替换成你原本的应用代码,比如: */}
        <div>
          <h1>我的应用内容</h1>
          {/* 其他组件或元素 */}
        </div>
      } 
    </div> 
  )
}

额外注意事项

  1. 替换//all my code的位置必须放入合法的JSX内容,哪怕暂时不想渲染内容,也可以写null来占位;
  2. 根据你的需求选择loading属性的值:"eager"表示立即加载图片,"lazy"表示滚动到视图时再加载;
  3. 确认loader图片的路径正确,本地图片要记得导入,网络图片直接写完整URL即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:02:44