Reproduction link
Steps to reproduce
1、点击前两个 item
2、查看控制台 e.key 类型
What is expected?
1、e.key 是 number 类型
What is actually happening?
2、e.key 都是 string 类型
| Environment | Info |
| ------------ | ------------ |
| antd | 5.15.2 |
| React | latest |
| System | mac |
| Browser | chrome |
官网文档中显示 key 为 string 类型,但是 typescript 支持 number 类型。
5条答案
按热度按时间uurity8g1#
Start a new pull request in StackBlitz Codeflow .
w8biq8rn2#
@chenyuf2 hi,MenuItem 的 key 允许是 React.Key,那么就包含了 string | number 类型,不应该只允许 string 类型,这个问题个人认为应该在 rc-menu 中去解决,问题的原因:
TODO: openKeys、selectedKeys 和 onSelect 的 key 类型都应该是 React.Key
pxy2qtax3#
@chenyuf2 hi,MenuItem 的 key 允许是 React.Key,那么就包含了 string | number 类型,不应该只允许 string 类型,这个问题个人认为应该在 rc-menu 中去解决,问题的原因:
TODO: openKeys、selectedKeys 和 onSelect 的 key 类型都应该是 React.Key
很多antd的文档写的都是string为key,但是其实都是React.Key 作为Key,比如Table组件
hmae6n7t4#
是的,但文档中 string 是没问题的,React.Key 可能会有问题,可以让 key 的类型支持 React.Key 🙈
ryoqjall5#
可能 breaking change,需要在 major 修复