export default Comp => ({ children, ...props }: { children?: Node }) => (
<KeyboardAvoidingWrapper
keyboardVerticalOffset={-getBottomSpace() / 2}
behavior="padding"
enabled
>
<Comp {...props}>{children}</Comp>
</KeyboardAvoidingWrapper>
);
这是错误代码流生成的: 缺少'Comp'.Flow(InferError)的类型注释
编辑: FlowVersion:0.78.0 RNVersion:0.57
答案 0 :(得分:1)
从流程0.89.0开始,您要在HOC中用于包装组件的类型为React.AbstractComponent
。
此类型采用两个类型参数,def DFS(self, n, row, col, pie, na, path):
if row == n:
print 'current recursion path: ', path
self.queues.append(path)
print 'paths within the recursion: ', self.queues
return
for c in range(n):
if (c not in col) and (c + row not in pie) and (row-c not in na):
col.add(c)
pie.add(c+row)
na.add(row-c)
self.DFS(n, row + 1, col, pie, na, path + [c])
col.remove(c)
pie.remove(c+row)
na.remove(row-c)
和Config
。 Instance
通常可以安全地忽略,并且Instance
在技术上同时包含Config
类型的和 Props
,实际上仅用作{ {1}}类型。因此,我们基本上可以将任何React组件(类,函数,所拥有的东西)键入为DefaultProps
。
Props
请注意,我们在React.AbstractComponent<Props>
bound中添加了generic,以告知流程// @flow
import * as React from 'react';
export default <Props: { children: React.Node }>(
Comp: React.AbstractComponent<Props>,
) => ({ children, ...props }: Props) => (
//...
);
将始终包含类型{{ 1}},否则当我们尝试从Props
中提取Props
时,流程将不知道它存在。
Buuuut,由于您在较旧的流版本中使用react-native,因此您需要使用children
,它的抽象性稍差(它不会短暂地React.Node
较早前提过)。 Here's一个例子。
答案 1 :(得分:0)
可能是因为在定义之前使用<Comp />
吗?
导出默认Comp,导出组件函数,然后在其中调用一个组件(可能未定义)。
可以先尝试一下,看看错误消失了吗?
export default Comp => ({ children, ...props }: { children?: Node }) => (
<KeyboardAvoidingWrapper
keyboardVerticalOffset={-getBottomSpace() / 2}
behavior="padding"
enabled
>
<Text {...props}>{children}</Text>
</KeyboardAvoidingWrapper>
);