作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始学习 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 中)时,转译器显示错误,
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:类型“()”上不存在属性“消息”
如何解决此错误?我的理解是 props 和 state 在 React 组件中始终可用。非常感谢任何帮助。
最佳答案
您需要为 Typescript + React 组件指定 props 接口(interface):
interface Props {
message: string;
}
class Hello extends React.Component<Props> {
render() {
return (
<h1>Welcome to {this.props.message}</h1>
);
}
}
关于javascript - 在 React 组件类中看不到 props 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53290435/
我是一名优秀的程序员,十分优秀!