【问题标题】:What is the appropiate way to define a react component class without state?定义没有状态的反应组件类的适当方法是什么?
【发布时间】:2017-05-24 10:32:24
【问题描述】:

我想知道用打字稿定义反应类组件的推荐方法是否使用 void 作为状态类型:

class MyComponent extends React.Component<any, void> {
   constructor(props) {
      super(props);
      // The typescript compiler won't allow this using void type
      // this.state = {...}
   [...]
}

您知道推荐的或更好的方法吗?

注意:组件必须是一个类,因为我需要生命周期方法

【问题讨论】:

  • 这样定义组件有什么问题?
  • 没关系,但我正在寻找某种官方方式

标签: reactjs typescript


【解决方案1】:

使用void 作为状态类型是完全合法的。我还没有看到任何关于基于类的无状态组件的“官方”建议,但是(如果这会让你感觉更安全)这种方法被一些不那么小的 projects 使用。

您可以使用{} 代替void,但这不会保护您免于将某些内容分配给状态。

也可以指定never,它似乎给出与void相同的结果。

【讨论】:

  • 感谢您的回答!我听说过never类型,我会试试的。我不知道在概念上是否也比 void 更好
  • 我个人的偏好是使用void,因为它可以更好地“描述”您的意图。
猜你喜欢
  • 2017-05-11
  • 2011-03-23
  • 2019-12-22
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 2020-01-15
相关资源
最近更新 更多