假设我有一个名为'MyComponent'的组件,我想将它存储在typescript中'MyComponent'类型的变量中,但是使用JSX元素初始化它,如:
let comp: MyComponent = <MyComponent somePropInit={3} />
以上代码会产生如下错误:
'Element'类型中缺少'property'componentDidMount'
我正在使用的实际组件:
export class PlayCard extends React.Component<AllCardProps, {}> {
addToDeck(){...}
我是如何存储它的(我尝试过很多不同的东西,包括使用typeof,Card.PlayCard,PlayCard等):
import * as Card from './PlayCard'
...
let c: Card.PlayCard = <PlayCard Id={32} />
^如果我尝试以上操作我会收到错误
'组件&lt; ...&gt;'
类型中缺少'属性'addToDeck'
如果我删除了addToDeck,则错误会转到下一个函数。看起来任何存在的函数都会以某种方式抛出它?
我将如何做到这一点?
答案 0 :(得分:0)
React组件的生命周期方法是可选值。
以下是界面示例:
interface ComponentLifecycle < P, S > {
/**
* Called immediately before mounting occurs, and before `Component#render`.
* Avoid introducing any side-effects or subscriptions in this method.
*/
componentWillMount ? () : void;
/**
* Called immediately after a compoment is mounted. Setting state here will trigger re-rendering.
*/
componentDidMount ? () : void;
因此错误不在React / typescript中。您可能使用了导致问题的界面。