JSX元素类型“ X”不是JSX元素的构造函数

时间:2019-08-08 21:15:07

标签: reactjs typescript react-dom

搜索过去8小时后,我找不到解决方案。我收到一条消息:JSX element type 'X' is not a constructor function for JSX elements. Type 'X' is missing the following properties from type 'ElementClass': base, linkState

在另一个文件中工作时,调用的方法renderMessage()呈现了一个简单的组件。我的组件确实在该父文件上呈现,但是Typescript不断抛出此错误,不允许我npm运行build。我的文件扩展名为.tsx,而tsconfig具有 "jsx" : "react"有什么想法吗?

import * as React from "react";
import * as ReactDOM from "react-dom";

export interface MessageProps {
    message: string;
}

export default class RelayMessage extends React.Component <MessageProps> {
    render() {
         return <span>{this.props.message}</span>
    }
}

export function renderMessage(props: MessageProps, target: HTMLElement) {
    ReactDOM.render(<RelayMessage message={props.message} />, target);
}

1 个答案:

答案 0 :(得分:1)

我将确保您在tsconfig.json中有此行:

"jsx": "react",

并确保文件的扩展名为.tsx,而不是.ts