如何避免React componentDidUpdate的Flow类型警告?

时间:2018-01-18 10:38:09

标签: reactjs flowtype

我的componentDidUpdate方法出现以下错误:

  

不兼容的覆盖,应该有签名:'(prevProps:ReadOnly

,prevState:ReadOnly,_prevContext:any):void

我尝试将其作为返回类型,但后来我遇到了错误:

  • ReadOnly,P,S:无法解析名称
  • preContext:不兼容的覆盖,应该有类型' any'

代码:

class EditableCell<ID_TYPE> extends React.Component<Props<ID_TYPE>, State> {
    componentDidUpdate(prevProps: ReadOnly<P>, prevState: ReadOnly<S>, _prevContext: any): void {...}

    ... }

3 个答案:

答案 0 :(得分:1)

如果您使用的是Webstorm,请转到“设置”->“编辑器”->“检查”,然后关闭“签名不匹配”复选框。

答案 1 :(得分:0)

componentDidUpdate期望组件props作为第一个参数,组件状态作为第二个参数。因此,应相应地设置类型。

在我看来,最终结果应该是这样的:

componentDidUpdate(prevProps: Props<ID_TYPE>, prevState: State, _prevContext: any)

答案 2 :(得分:0)