gpt4 book ai didi

reactjs - 如何在不丢失流类型信息的情况下继承自定义 React 组件?

转载 作者:行者123 更新时间:2023-12-05 05:22:04 24 4
gpt4 key购买 nike

我有一个继承自 React.Component 的 BaseComponent。应用中的所有其他组件都继承自 BaseComponent。我需要键入 BaseComponent,以便 Flow 将继承自它的其他组件作为 React 组件处理。这是我目前拥有的:

class BaseComponent<P, S> extends React.Component<$Shape<P>, P, S> {
...
}

class OtherComponent extends BaseComponent {
props: {};
state: {}:
...
}

这是一个 working example .Flow 正确检查 OtherComponent 中的 Prop 、状态等。

但是,在 BaseComponent 中,我得到了模糊的错误:

  1. S:此类型与“未定义”不兼容。是不是忘记声明 S 了?

  2. P:此类型与“未定义”不兼容。是不是忘记声明 P 了?

  3. Did you forget to declare some incompatible instantiation ofS?: This type is incompatible with 'some incompatible instantiation ofS'

我很难理解错误消息。任何帮助将不胜感激。

最佳答案

这对我有用:

class BaseComponent<D, P, S> extends React.Component<D, P, S> {
static defaultProps: D
props: P
state: S
yourCustomFunction(): void
}

class You extends BaseComponent<any, any, any> {
--- component body ---
}

关于reactjs - 如何在不丢失流类型信息的情况下继承自定义 React 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41514976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com