React类组件改造后Material UI下拉菜单失效、Redux用户数据获取异常
项目背景与异常表现
正在为React应用实现基于角色的访问控制菜单,采用Material UI提供的组件搭建NavBar导航栏。该功能改造前可正常运行,在将函数组件转换为类组件、移除原有Hooks实现后出现两类核心异常:
- Dropdown下拉菜单无法正常触发展开
- Redux中存储的user JSON数据读取异常,
componentDidMount生命周期钩子无法正常获取用户信息,无法根据userRole数值为不同角色渲染对应的可见菜单选项
控制台输出警告信息
- Prop类型校验失败警告:
ForwardRef(Menu)、ForwardRef(Popover)、ForwardRef(SimpleBackdrop)、Unstable_TrapFocus组件中,标记为必填的open属性被传入null值,触发prop类型校验失败 - 兼容性提示:Material UI提示在button元素的子元素上绑定onClick事件监听器时,Firefox将永远无法触发该事件
当前组件的代码实现存在以下特征:
constructor构造函数中初始化组件状态,状态字段包含不同角色的访问权限标记、anchorEl、isMenuOpen等componentDidMount生命周期钩子中,尝试从props获取用户数据并同步对应权限标记render方法内部定义菜单打开/关闭的事件处理函数,逻辑存在偏差- 最终渲染Menu组件时,将
open属性绑定到state中的isMenuOpen字段
内容的提问来源于stack exchange,提问作者James Gee
相关产品推荐
相关产品推荐

