Redux DropdownMenu无法在导航栏正常显示问题求助
核心问题
React组件命名必须遵循首字母大写规范,小写开头的组件会被JSX解析为原生HTML标签而非自定义React组件,这是你的Dropdown组件在Menu.js中不显示的直接原因。同时你的Menu.js代码缺少组件导入语句,这也是必要前提。
修复步骤
1. 修正Dropdown组件的命名
修改Dropdown.js中的组件名称为大写开头:
import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; // 首字母大写,符合React组件命名规范 export default function DropdownUserProfileMenu (){ return ( <> <DropdownMenu.Root> <DropdownMenu.Trigger className='trigger'>Settings</DropdownMenu.Trigger> <DropdownMenu.Content> <DropdownMenu.Item>New Item</DropdownMenu.Item> <DropdownMenu.Item>New Item 2</DropdownMenu.Item> <DropdownMenu.Item>New Item 3</DropdownMenu.Item> <DropdownMenu.Item>New Item 4</DropdownMenu.Item> </DropdownMenu.Content> </DropdownMenu.Root> </> ) };
2. 在Menu.js中导入并正确使用组件
确保Menu.js顶部导入Dropdown组件,并使用大写的组件名:
// 导入组件,路径请根据你的项目结构调整 import DropdownUserProfileMenu from './Dropdown'; // 其余代码保持不变,仅修改组件使用部分 <div className='w-screen mr-3 h-16 drop-shadow-md rounded-sm bg-white'> <div className='container px-4 md:px-0 h-full mx-auto flex justify-between items-center shadow-md'> <div className='text-primaryBlack'> <Link href='/'><p className='pl-4'>Student sharing site</p></Link> </div> <div> <ul id='menuElements' className={`right-0 px-10 py-16 text-primaryBlack z-50 flex mx-auto flex-row space-x-4 items-center`}> <Link href='/about'><li>About</li></Link> {/* 使用大写开头的组件名 */} <li><DropdownUserProfileMenu /></li> <Link href='/api/auth/signout'><li onClick={e => { e.preventDefault() signOut() }}>Signout</li> </Link> </ul> </div> </div> </div>
额外检查
- 确认
@radix-ui/react-dropdown-menu已正确安装在项目依赖中 - 检查组件导入路径是否与你的项目文件结构匹配
内容的提问来源于stack exchange,提问作者Nicholas Yoannou
相关产品推荐
相关产品推荐

