我目前正在使用flow和eslint来清理我们的代码库。
Eslint告诉您将无状态组件转换为无状态功能组件。但我还没有找到他们的道具如何正确输入流量的例子。这是我试过的:
原始组件:
type Props = {onPress : Function}
export default class MyButton extends React.Component <Props> {
render() {
... // use this.props.onPress
}
}
版本1(我希望函数如何工作):
流程说Cannot create MyButton element because a callable signature is missing in props [1] but exists in function type [2].
const MyButton = (onPress: Function) => (
return(
... // use onPress
)
}
版本2(见here):
在这里,eslint抱怨onPress
无法找到。 ${onPress}
也不起作用。
Flow抱怨:Missing type annotation for destructuring.
const MyButton = ({onPress: Function}) => (
return(
... // use onPress (or ${onPress} ??)
)
}
那么我该如何解决这个问题?
答案 0 :(得分:3)
您的版本2已关闭,但您无法在解构内定义类型;你必须定义整个对象类型。它看起来像这样
type Props = {
onPress: Function
}
const MyButton = ({ onPress }: Props) => (
return(
...
)
}