在react组件类中找不到props属性



我开始学习react,目前正在使用Visual Studio 2017编写一个基本的hello world web应用程序。我的index.html文件如下:

<body>
<div id="root"></div>
<!-- scripts -->
<script src="./dist/app-bundle.js"></script>
</body>

而我的app.tsx文件如下(app.tsx被传输到./dist/app-bundle.js(:

declare var require: any
var React = require('react');
var ReactDOM = require('react-dom');
class Hello extends React.Component {
render() {
return (
<h1>Welcome to dsdasd!!</h1>
);
}
}
ReactDOM.render(<Hello />, document.getElementById('root'));

以上两个文件运行良好。然而,当我尝试在Hello类中使用props属性(如下修改后的app.tsx中所示(时,transiler显示错误,

declare var require: any
var React = require('react');
var ReactDOM = require('react-dom');
class Hello extends React.Component {
render() {
return (
<h1>Welcome to {this.props.message}!!</h1>
);
}
}
ReactDOM.render(<Hello message = "some message"/>, document.getElementById('root'));

错误:TS2339: Property 'message' does not exist on type '()'

如何解决此错误?我的理解是,道具和状态在react组件中总是可用的。非常感谢您的帮助。

您需要为Typescript+React组件指定props接口:

interface Props {
message: string;
}
class Hello extends React.Component<Props> {
render() {
return (
<h1>Welcome to {this.props.message}</h1>
);
}
}

相关内容

最新更新