React类组件:继承Component与React.ReactNode的区别解析
两种React类组件写法的差异解析
首先明确:这两种写法里,只有第一种是正确且可用的,第二种属于错误写法,根本无法正常工作。
1. 正确的类组件写法:class ReactTooltip extends Component { ... }
Component是React提供的核心基类,专门用于创建类组件。- 继承它之后,你的类组件就能拥有React类组件的全部特性:比如
state状态管理、生命周期方法(componentDidMount、shouldComponentUpdate等)、接收props并渲染UI的能力。 - 通常我们会提前导入
Component:import { Component } from 'react',这样就不用写完整的React.Component了。
2. 错误的写法:class ReactTooltip extends React.ReactNode { ... }
React.ReactNode不是可被继承的类,它是TypeScript中的类型定义,用来描述React能够渲染的所有节点类型(比如JSX元素、字符串、数字、null、数组等)。- 尝试继承它会直接抛出语法错误,因为它本质是一个类型标识,不是构造函数或类,完全无法作为父类来创建组件。
简单总结:第一种是React官方规定的类组件创建方式,第二种是完全误用了React的类型概念,属于写法错误。
内容的提问来源于stack exchange,提问作者Stephen Fong
相关产品推荐
相关产品推荐

