antd Menu组件在React16中报错

React16版本,antd2.13.6
正常使用Menu组件:

<Menu
    theme="dark"
    selectedKeys={this.state.key}
    onSelect={(obj)=>this.saveKey(obj)}
>
    <Menu.Item key="A">A</Menu.Item>
    <Menu.Item key="B">B</Menu.Item>
</Menu>

Menu.Item会被报错:

Warning: Stateless function components cannot be given refs. Attempts to access this ref will fail.null

虽然只是一个Warning, 用也能正常用,但很不舒服。
有多少个Menu.Item,就会报几次Warning

阅读 7.4k
2 个回答

making menu.item as react-class instead inline-function should prevent warning "Stateless function components cannot be given refs."

第一种直接在render函数中使用标签menu.item没有警告,第二种方式这样就有警告

  < Menu.SubMenu>
   </ Menu.SubMenu>
 SubMenu = Menu.SubMenu
  <SubMenu></SubMenu>
新手上路,请多包涵

因为antd使用ref="string"导致,解决方案是换成ref={()=>{}},不过只是提示,目前还是可以正常使用,如果使用不了了,蚂蚁金服团队也会改。还有个解决方案,就是从git上下载antd-design,修改指定文件后打包,用自己打包的这个。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题