【问题标题】:React Native - Super expression must either be null or a functionReact Native - 超级表达式必须为空或函数
【发布时间】:2018-11-26 16:16:09
【问题描述】:

我想构建一个包含多个方法的超类,因为我想从不同的类中调用它们。此外,我还有减少代码的好处。

但是,我收到错误消息“超级表达式必须为空或函数”

这是我想从 SuperScreen.js 文件中调用函数 super.interface() 的类之一:

import React from "react";
import { SuperScreen } from "./SuperScreen";

export default class HomeScreen extends SuperScreen {
  constructor(props) {
    super(props);
    this.state = {
      isLoading: true,
      data: null,
      key: 15
    };
  }

render() {
    return super.interface();
  }
}

我的 SuperScreen.js

import React, { Component } from "react";

export default class SuperScreen extends Component {
  constructor() {}

  interface() {...}
}

但是,我仍然收到消息Super expression must either be null or a function。为什么以及如何解决?

诚挚的问候和感谢

【问题讨论】:

  • 从 SuperScreen 组件构造函数中调用 super 或完全避免使用构造函数
  • 两者都不起作用...

标签: javascript reactjs react-native super superclass


【解决方案1】:

您的导入有点混乱。 从 SuperScreen 导入中删除大括号,因为您将 SuperScreen 类导出为默认值。

import SuperScreen from "./SuperScreen";

或者改正导出

export class SuperScreen extends Component

【讨论】:

  • 谢谢。在职的! - 花括号是什么意思?
  • 对不起,我的意思是大括号。
  • 谢谢。但为什么我必须删除它们?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多