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

使用flowbite-react默认导航栏组件报错:React未定义及react.forward_ref疑问

问题描述

已完成Flowbite React依赖安装,将官方默认导航栏代码复制到App.jsx后,出现以下报错:

Uncaught ReferenceError: React is not defined
$$typeof: Symbol(react.forward_ref)

有两个疑问:

  1. 什么是react.forward_ref?网上仅能找到类似React.forwardRef的内容
  2. 如何解决该报错问题?

复制的导航栏代码如下:

<Navbar
  fluid={true}
  rounded={true}
>
  <Navbar.Brand
    as={{
      $$typeof: Symbol(react.forward_ref),
      render: LinkWithRef
    }}
    to="/navbars"
  >
    <img
      src="https://flowbite.com/docs/images/logo.svg"
      className="mr-3 h-6 sm:h-9"
      alt="Flowbite Logo"
    />
    <span className="self-center whitespace-nowrap text-xl font-semibold dark:text-white">
      Flowbite
    </span>
  </Navbar.Brand>
  <Navbar.Toggle />
  <Navbar.Collapse>
    <Navbar.Link
      href="/navbars"
      active={true}
    >
      Home
    </Navbar.Link>
    <Navbar.Link
      as={{
        $$typeof: Symbol(react.forward_ref),
        render: LinkWithRef
      }}
      to="/navbars"
    >
      About
    </Navbar.Link>
    <Navbar.Link href="/navbars">
      Services
    </Navbar.Link>
    <Navbar.Link href="/navbars">
      Pricing
    </Navbar.Link>
    <Navbar.Link href="/navbars">
      Contact
    </Navbar.Link>
  </Navbar.Collapse>
</Navbar>

解答

1. react.forward_ref是什么?

react.forward_ref是React.forwardRef官方API在React内部的符号标识——React用它来标记通过React.forwardRef()创建的组件。你查到的React.forwardRef是给开发者使用的公开API,作用是将ref转发给子组件;而代码里的Symbol(react.forward_ref)属于组件内部的底层属性,正常开发完全不需要手动编写,这是官方文档代码的失误。

2. 报错修复步骤

报错核心是React未被定义,再加上代码里的as属性写法错误,按以下步骤解决:

步骤1:导入React

在App.jsx的最顶部添加React导入:

import React from 'react';

React 17+虽支持自动导入,但部分旧配置场景下仍需手动导入,先添加排查问题。

步骤2:修正as属性的错误写法

原代码里的as={{ $$typeof: Symbol(react.forward_ref), render: LinkWithRef }}完全错误,正确写法分三种情况:

  • 若已定义LinkWithRef组件(比如包装了React Router的Link并支持ref),直接将组件传给as:
    <Navbar.Brand as={LinkWithRef} to="/navbars">
      {/* 原内容不变 */}
    </Navbar.Brand>
    
  • 若未定义LinkWithRef,可自己用React.forwardRef定义:
    import { Link } from 'react-router-dom';
    
    const LinkWithRef = React.forwardRef((props, ref) => {
      return <Link ref={ref} {...props} />;
    });
    
  • 要是不需要路由跳转,直接用原生a标签(将to替换为href):
    <Navbar.Brand href="/navbars">
      {/* 原内容不变 */}
    </Navbar.Brand>
    

步骤3:检查依赖与配置

确保已正确安装依赖:

npm install flowbite-react flowbite

同时确认tailwind.config.js里配置了Flowbite的内容路径,保证样式能正常加载:

/** @type {import('tailwindcss').Config} */
export default {
  content: [
    "./index.html",
    "./src/**/*.{js,ts,jsx,tsx}",
    "./node_modules/flowbite-react/lib/**/*.js"
  ],
  plugins: [
    require('flowbite/plugin')
  ]
}

内容的提问来源于stack exchange,提问作者christianbueno.1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:55:17