typescript - Typescript 不明白 props 是由 react-navigation withNavigation HOC 提供的
问题描述
我有一个问题
"react-navigation": "2.18.2",
"@types/react-navigation": "2.13.0",
"typescript": "3.1.6",
我正在尝试withNavigation
在子组件中使用 HOC,但这会导致父组件说并非所有必要的道具都被传递下来。IE
在父母中:
render() {
return (
<Child
someProp={true}
/>
);
}
在儿童中:
export interface IChildProps {
someProp: boolean
}
class Child extends React.Component<IChildProps & NavigationInjectedProps> {
render() {
return (<Text>Child component </Text>)
}
}
export default withNavigation(Child)
我在父级中收到此错误:
Property 'navigation' is missing in type ...
,表明父级似乎无法弄清楚由于某种原因navigation
通过 HOC 传递给子级?withNavigation
我当然可以从父级传递navigation
道具,但这会变得withNavigation
毫无用处,只是将问题移到祖先链上:笑脸:
我查看了类型定义,找不到任何错误。这里有人可以帮我解决问题吗?
解决方案
strictFunctionTypes
如果启用编译器选项,我可以重现该问题。withNavigation
包中的声明@types/react-navigation
不是为使用此选项而设计的。我已经提交了一个拉取请求来修复它。在合并拉取请求之前,请参阅此答案以了解使用我修改后的声明的可能方式。
推荐阅读
- python - 如何生成 WM_SEC.AUTH_SIGNATURE?
- java - Java 输入缓冲区和 do-while 循环行为(为什么它检查第一个字符 3 次?)
- excel - 优化后VBA Loop仍然运行缓慢
- magento2 - Magento 2 管理表单显示空白页
- amazon-web-services - 在两个项目之间共享 AWS Cognito / Amplify Auth 配置?
- powerbi - 非空白列的百分比
- python - Python:运行实时跟踪的 GUI
- c# - C# 选择带有名称的属性
- c# - Ionic 4 + Net Core 2.3 路由 API 调用
- python-3.x - 机器人两次执行相同的命令