【发布时间】:2016-08-13 04:52:54
【问题描述】:
我正在开发一个使用 TypeScript 和 React 的项目,我对这两个项目都很陌生。我的问题是关于 TypeScript 中的界面以及它与道具和状态的关系。实际发生了什么?除非我声明接口道具和状态,否则我的应用程序根本不会运行,但是我通过 React 构造函数使用状态,并且我已经看到了所有这些信息都将进入“接口 MyProps”或“接口 MyStates”的示例.以这段代码为例:
"use strict";
import * as React from 'react'
import NavBar from './components/navbar.tsx'
import Jumbotron from './components/jumbotron.tsx';
import ContentPanel from './components/contentPanel.tsx';
import Footer from './components/footer.tsx';
interface MyProps {}
interface MyState {}
class Root extends React.Component <MyProps, MyState> {
constructor(props) {
super(props);
this.state = {
///some stuff in here
};
}
render() {
return (
<div>
<NavBar/>
<Jumbotron content={this.state.hero}/>
<ContentPanel content={this.state.whatIs}/>
<ContentPanel content={this.state.aboutOne}/>
<ContentPanel content={this.state.aboutTwo}/>
<ContentPanel content={this.state.testimonial}/>
<Footer content={this.state.footer}/>
</div>
)
}
}
export default Root;
(我删除了 this.state 中的内容只是为了在此处发布)。为什么需要接口?这样做的正确方法是什么,因为我认为我是以 JSX 方式而不是 TSX 方式来考虑这个的。
【问题讨论】:
-
我也在为这种模式苦苦挣扎,想知道如何将接口道具(此处为 MyProps)从外部传递给 Root 组件 - 当组件在 jsx 中创建时。遗憾的是,接受的答案没有显示那部分。
-
更新:找到它,您使用 propName = {...} 语法。以防万一有人有同样的挣扎。
-
错误(您可以粘贴以详细说明问题)可能与打字稿要求属性接口(@987654321@)有关,例如看到这个答案stackoverflow.com/a/46987987/2361131
标签: reactjs typescript jsx tsx