我的问题:
我正在尝试将自己的样式添加到react-native-popup-menu提供的组件中,并将其添加到我的组件库中。它们提供具有以下预期层次结构的Menu、MenuOptions和MenuOption组件:
<Menu>
<MenuOptions>
<MenuOption text="A">
</MenuOption>
<MenuOption text="B">
</MenuOption>
</MenuOptions>
</Menu>
我计划为这些元素中的每一个创建 Package 器,在其中样式化组件,并在有人从组件库导入它时返回 Package 器。
例如,菜单组件的 Package 器:
import { MenuProps } from 'react-native-popup-menu';
type CustomMenuProps = {
children: React.ReactElement[];
}
const CustomMenu = (props: MenuProps && CustomMenuProps) => {
return <Menu style={{...someCustomStyle}}>{children}</Menu>
}
这将在每一层上添加 Package 器(一个额外的元素),从而产生以下层次结构:
<CustomMenu>
<Menu>
<CustomMenuOptions>
<MenuOptions>...
软件包不喜欢这样,因为它依赖于层次结构来正确显示菜单。抛出错误“MenuOptions should be a child of Menu”
有没有一种方法可以创建一个自定义样式的菜单,并将其作为组件库中的组件公开?如果它是react,我会覆盖css类,但在react-native中没有级联效果。
任何线索都会很有帮助。谢谢你。
1条答案
按热度按时间fzsnzjdm1#
我不确定到底是什么问题-所以我只会在这里添加一些提示/线索,可能会帮助你。
检查文档https://github.com/instea/react-native-popup-menu/blob/master/doc/extensions.md和相应的example
从这里,我看到了以下你可以做/使用的事情:
1.选项容器的自定义样式似乎也可以
<Menu renderer={RoundedContextMenu}>
你只需要一个小样板文件(参见示例)-我想把它 Package 到自定义组件中不是问题
1.任何“左”的风格是触发器,接受任何作为孩子...现在不确定你是否可以轻松地将它 Package 到自己的组件中...