当前位置: 首页 > 知识库问答 >
问题:

Typescript使用propTypes对组件进行反应

胡致远
2023-03-14

我有一个类扩展了React。组件类,我将为我希望接收的道具传递我自己的接口。问题是当我使用SomeComponent时。propTypes={…webstorm linter说有问题,指出类型“typeof SomeComponent”上不存在属性“propTypes”。

我不知道为什么会这样......

SomeComponent的代码为

class SomeComponent extends React.Component<IProps, {}> {...}

当我编写以下代码创建函数组件时,会引发类似的异常:

const SomeComponent: React.FunctionComponent<IProps> = (props) => {...}

在本例中,使用SomeComponent时再次出现错误。propTypes={…} 语法。。。这一次,异常类型为。。。不可分配给类型\

关于为什么会发生这种情况以及如何告诉typescript我应该能够使用这个属性,有什么帮助吗?谢谢


共有1个答案

澹台胜
2023-03-14

Typescript不允许在声明类后添加静态属性。我相信您可以通过将propTypes作为静态属性添加到类中来添加它:

class SomeComponent extends React.Component<IProps, {}> {
  static propTypes = {} // Set your propTypes here
}

另外,在使用Typescript时,为什么要使用propTypes?TS将在编译时负责类型检查。

 类似资料:
  • 问题内容: 随着React 中钩子的引入,现在的主要困惑是何时将函数组件与钩子和类组件一起使用,因为在钩子的帮助下,甚至可以在函数组件中获得和部分使用。所以,我有以下问题 钩子的真正优点是什么? 何时使用带有钩子的函数组件和类组件? 例如,带有钩子的功能组件不能像类组件那样帮助性能。他们没有执行就不能跳过重新渲染。还有其他原因吗? 提前致谢。 问题答案: 引入和其他特性(例如和)的思想是帮助减少必

  • 问题内容: React有很多使用PropTypes来检查道具价值的方法。我通常使用的是。但是,最近我遇到一种情况,其中我有一个对象,该对象内部将具有动态键/值。我知道每个键都应该是一个字符串(采用已知格式),每个值都应该是一个整数。即使使用自定义道具验证功能,它仍然假设您知道道具的钥匙。如何使用PropTypes检查对象/形状的键和值是否正确? 再说一遍:我至少要检查每个键的值是一个数字。理想情况

  • 问题内容: 我正在尝试创建一个通用组件,用户可以在其中将自定义传递给组件以一路进行类型检查。此组件还需要一个。 我可以在没有forwardRef的情况下使其正常工作。有任何想法吗?代码如下: 没有ForwardRef.tsx WithForwardRef.tsx App.tsx 在中,它表示该组件不是通用的。有没有办法做到这一点? 回购示例:https : //github.com/jgodi/g

  • 我试图理解新的React钩子及其用例。 我的目标是一个单一的组成部分,计算起来,也每x滴答计数另一个计数器。 我使用useEffect和useState实现了它,主要有两个问题: 1。组件在调用超时之前卸载时发生内存泄漏(使用react router导航时) 2。该组件在每个刻度上渲染两次,因为useEffect和useState都会触发渲染。 我认为解决方案是使用useRef或usemo,但我还

  • 使用在TypeScript React应用程序中是有意义的,还是这只是“皮带和吊带”的一种情况? 由于组件类是使用类型参数声明的: 添加有什么真正的好处吗 对类的定义?

  • 我无法理解为什么我的AppReact组件呈现两次,如下面的gif所示。 我插入了一个控制台。在返回组件之前记录日志,查看组件渲染的次数。 每当我移除useState钩子时,我的应用程序只会呈现一次我认为应该呈现的效果。任何关于为什么会发生这种情况的指导都是受欢迎的