我应该如何指定样式组件 React Native 组件的子类型?

Posted

技术标签:

【中文标题】我应该如何指定样式组件 React Native 组件的子类型?【英文标题】:How should I specify type of children for styled-components React Native component? 【发布时间】:2019-07-06 15:42:10 【问题描述】:

如果我创建一个这样的样式组件:

const Wrapper = styled(View)``;

并尝试使用它并将子代传递给它,我得到这个 TyepScript 错误:

类型'孩子:元素[]; ' 与 type 没有共同的属性 '内在属性和选择, “风格” | “击球” | “布局” | “指针事件” | "removeClippedSubviews" | “测试ID” | “本机ID” | ... 38 更多... | "ref"> & 部分<...>, "style" | ... 44 更多... | “参考”> & ...; & ...; '。

除非我明确定义了 children 属性的类型:

const Wrapper = styled(View)< children?: React.ReactNode >``;

有没有更好的方法或者这是我应该做的?似乎对每个组件都这样做是重复的,应该有更好的方法。

【问题讨论】:

【参考方案1】:

经过几周对此感到恼火并最终决定在 *** 上提问...我一做就发现不到两个小时前已经合并了一个 PR 以解决这个确切的问题: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/32843

在 styled-components 4.1.9 中,children 属性类型会自动添加到所有组件中。

【讨论】:

以上是关于我应该如何指定样式组件 React Native 组件的子类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 React Native <CheckBox> 组件的样式?

如何在 React-Native 项目中使用 Jest 测试样式化组件?

使用带有样式组件的动画(react-native)

如何在 react-native-element 中获得这种搜索栏样式?

React Native 外部样式表不更新组件

当父组件已经定义了样式时,CSS 未按预期在 React Native 中应用