ant-design / ant-design-mobile

Essential UI blocks for building mobile web apps.
https://mobile.ant.design
MIT License
11.61k stars 2.39k forks source link

Dropdown.Item 封装成组件放在 Dropdown 下面点击无反应 #6426

Closed liqiuqiui closed 10 months ago

liqiuqiui commented 10 months ago

Version of antd-mobile

5.33.0

Operating system and its version

Android, Others

Browser and its version

any

Sandbox to reproduce

https://codesandbox.io/s/wizardly-clarke-g9yvk8?file=/src/App.tsx

What happened?

问题:

Dropdown.Item必须直接放在 Dropdown下作为 children 才能正常点击弹出 popup。一旦Dropdown.Item被封装成组件,渲染出来的item 点击无任何反应。影响了组件封装的灵活性。 问题复现 demo

期望的正确行为:

Dropdown.Item 被封装成组件放在 Dropdown 里也可以正常使用

Relevant log output

No response

zombieJ commented 10 months ago

内部是通过子组件的 props 来收集信息的,HOC 后你也需要把属性写到最外层才行。

jsx 结构本身是语法糖,是不支持 HOC 的。

1587315093 commented 10 months ago

Dropdown.Item 的 props,是由Dropdown传下去的

套了一层相当于把它props隔离掉了,onClick自然也没设置到 Item 上

image

liqiuqiui commented 10 months ago

内部是通过子组件的 props 来收集信息的,HOC 后你也需要把属性写到最外层才行。

jsx 结构本身是语法糖,是不支持 HOC 的。

好嘞,谢谢解答

liqiuqiui commented 10 months ago

Dropdown.Item 的 props,是由Dropdown传下去的

套了一层相当于把它props隔离掉了,onClick自然也没设置到 Item 上

image

嗯嗯,后面看了代码后明白了。谢谢