【问题标题】:Documentation of flow (flowtype) errors流(流类型)错误的文档
【发布时间】:2018-03-16 06:19:06
【问题描述】:

我反复遇到流类型错误,我没有通过 duckduckgo 或 google 找到任何信息。

最近的一个例子:

    statics of MyView [1] is not a polymorphic type.
      6│   navigation: any,
      7│ }
      8│
 [1]  9│ export default class MySubView extends MyView <Props> {
     10│   succesfullyChanged = () => {
     11│     this.setState({
     12│       loading: false,

我的视图:

type State = {
  \\ lots of state
};


export default class MyView extends React.Component <{}, State> {
  \\..
};

如果有人能指出我可以找到有关如何使 MyView 成为多态类型的更多信息的方向,那就太好了。

我知道flow docs。但是,它们在搜索特定错误时不会出现。

我正在寻找类似于 flow documentation 的内容,其中每个规则/错误都带有示例。

编辑: 我在generyc types 上找到了似乎是多态类型的文档。现在似乎流程将我的&lt;Props&gt; 误认为是泛型类型?

【问题讨论】:

  • 听起来你没有正确声明MyView,但如果没有更多信息很难说。我还要说,将 React 组件子类化通常是一个坏主意。使用组合,而不是继承。
  • 感谢您的建议。这个观点似乎奏效了。只有流量在抱怨。
  • 总之,有很多代码会运行,但会让 Flow 不开心。您必须向我们展示如何定义 MyView 才能对此负责。
  • 感谢您的帮助。我添加了MyView的定义。

标签: javascript react-native flowtype


【解决方案1】:

如果MyView 是您期望的子类并且具有不同的Props,则需要将其设为多态,如下所示:

export default class MyView<Props> extends React.Component<Props, State> {

它声明MyView 类是多态的,并且可以接受一组刚刚传递给React.Component 的属性。你有什么

export default class MyView extends React.Component<{}, State> {

将它声明为一个类,其道具仅限于一个空对象,因此它没有可用的.props。如果这你想要的,你会做class MySubView extends MyView {,因为没有任何属性需要调整。

【讨论】:

  • 您能否进一步详细说明您对原始问题的评论,即将继承与反应原生组件一起使用是一个坏主意?这样做时我需要考虑副作用吗?或者您认为问题是什么?
  • 我会参考主要的 React 文档:reactjs.org/docs/composition-vs-inheritance.html
猜你喜欢
  • 2017-05-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-13
  • 2018-10-13
  • 2017-10-09
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
相关资源
最近更新 更多