【发布时间】:2019-05-19 23:32:11
【问题描述】:
由于StatelessComponent 已被弃用,我正在尝试将所有组件转换为类。
我有一个接口,例如:
interface MyInterface{
prop1: number;
prop2: boolean;
}
我在课堂上使用它:
class MyComponent extends React.Component<MyInterface> {
...
public render(){...}
}
当我尝试像这样使用MyComponent 时:
<MyComponent
prop1={3}
prop2={false}
/>
我得到这个错误:
TS2740:类型 {prop1: 3, prop2: false} 缺少 ReadOnly 类型的以下属性:render、context、setState、forceUpdate 和另外 3 个。
有什么解决办法吗?
【问题讨论】:
-
似乎可以使用您提供的代码:stackblitz.com/edit/react-ts-o7jxrp(假设
MyComponent在您的 jsx 标记中是TravelChange) -
@TitianCernicova-Dragomir 是的,它有效。但是我在 IDE 中遇到了这个错误,我想让它消失。
-
我的特定代码也有错误,因为
prop2应该是string,但如果我纠正它一切正常并且我在我的IDE(或stackbliz)中看不到任何错误。你用的是什么IDE?也许重新启动它?也许您没有导入相同的组件?您的代码看起来不错。 -
是的,我更新了问题(现在
prop2是boolean),但即使在重新启动IDE 后我仍然收到错误消息。我正在使用 WebStorm。