当前位置: 首页 > 面试题库 >

React-如何在不使用构造函数的情况下访问道具

祁权
2023-03-14
问题内容

注意:我在使用React Native时遇到了这个特定的问题,但是我想这也同样适用于React。

我有一个使用React.Component构建的React组件。我不需要设置状态,但是我有道具。我建议的语法如下:

class Header extends Component {
  constructor(props) {
    super(props);
  }
  render() {
    return <div>{this.props.title}</div>;
  }
}

我知道我可以使用函数来构造此组件,如下所示:

const Header = (props) => {
  return <div>{props.title}</div>;
}

但是我更喜欢前者,因为我的组件会增长,可能会有状态等,我只想以相似的方式构建所有组件。

现在,我的linter抱怨拥有一个无用的构造函数,但是在保留类构造函数而不是函数构造函数的同时,我又该如何访问道具呢?


问题答案:

如果要在构造函数中使用this.props,则需要将props传递给super。否则没关系,因为React在调用构造函数后立即从外部在实例上设置.props。

因此,如果无用,只需删除constructor()



 类似资料:
  • 我一直不明白为什么我们能够从其他类调用一个类的构造函数。构造函数是一种方法,通常当试图从类中调用方法时,我们必须要么使该方法静态,这样我们就可以以 但是在构造函数的情况下,我们两者都不做。Java如何调用类的构造函数而不执行这些方法中的任何一个?我知道一个类的构造函数必须对你调用它的类可见,也就是说,如果你调用的类构造函数在不同的包中,你必须导入那个包。 那么,Java如何处理调用构造函数,而不必

  • 我有一个类,它有一个默认构造函数,还有一个重载构造函数,它接受一组参数。这些参数与对象上的字段匹配,并在构造时指定。此时,我需要用于其他目的的默认构造函数,因此如果可以的话,我希望保留它。 我的问题:如果我删除默认的构造函数并传递JSON字符串,对象反序列化正确,并传递构造函数参数没有任何问题。我最终以我所期望的方式找回填充的对象。但是,一旦我将默认构造函数添加到对象中,当我调用

  • 问题内容: 考虑私有C函数,该函数返回当前设备屏幕的快照: 我可以将其放在桥接标头中,然后在Swift中访问它,如下所示: MyApp-Bridging-Header.h MyClass.swift 有没有一种方法可以在不使用桥接头的情况下在纯Swift中访问? 最初的想法是在上创建扩展,但是该扩展希望我在扩展中声明函数的主体: 无论如何,这种实现都是有缺陷的,因为上没有方法。 在纯Swift中是

  • 我有很多Android ViewModel类,它们往往有很多依赖项(大多数是Room中的DAO,每个SQLite表一个)。有些依赖项超过10个。 这很好,但Inject构造函数充满了参数,并且只包含样板代码,用于从构造函数参数设置注入的成员。 我想切换到“常规”注入成员,使用注释单独标识,就像其他(哑)类一样。 这对于与Android相关的类(尽管ViewModel被宣传为非Android依赖,例

  • 问题内容: 在Mongoose的早期版本(针对node.js)中,可以选择使用它而不定义架构 但是在当前版本中,“ noSchema”功能已被删除。我的架构可能会经常更改,并且实际上不适合已定义的架构,因此,是否有一种新的方式在猫鼬中使用无架构的模型? 问题答案: 我想这就是您要寻找猫鼬严密的东西 选项:严格 严格选项(默认情况下启用)可确保未在架构中指定的添加到模型实例的值不会保存到数据库中。

  • 我试图了解DI在我们的代码库(Kotlin)中是如何使用的。我们正在使用googleguice进行依赖注入。 下面是一个示例类: 在模块类中: DepB类别: 据我所知,对于用< code>@Inject注释的变量,Google Guice会使用模块类来解决这些依赖关系。所以< code>DepA对象的注入方式是有意义的。 但是呢?我们如何能够在不指定任何位置的情况下注入DepB?