React.render 在 TypeScript 中用于同时具有 props 和 state 的组件
React.render in TypeScript for component with both props and state
我有一个带有 React 组件的 TypeScript TSX 文件,如下所示:
interface IHiProps {
a: string;
b: string;
}
interface IHiState {
}
class Hi extends __React.Component<IHiProps, IHiState> {
// render…
}
如何在 TypeScript 中正确呈现此组件?
var hiComponent: __React.Component<IHiProps, IHiState>;
hiComponent = __React.render(__React.createElement(Hi), { a: "A", b: "B" }, document.body);
这让我失望 'typeof Hi' 类型的参数无法分配给 'ComponentClass' 类型的参数。我正在使用来自 the DefinitelyTyped repository of Boris Yankov.
的明确类型文件
像这样更改 class 是否有效?
class Hi extends __React.Component<IHiProps, IHiState> {
static propTypes: __React.ValidationMap<any> = {
a: __React.PropTypes.string,
b: __React.PropTypes.string
}
// render…
}
还使用 __React
是可疑的,因为它是 React.d.ts 的内部变量。在运行时不会有这样的变量 - 如果你不创建它。考虑使用模块:
/// <reference path="/path/to/react.d.ts" />
import * as React from React;
我有一个带有 React 组件的 TypeScript TSX 文件,如下所示:
interface IHiProps {
a: string;
b: string;
}
interface IHiState {
}
class Hi extends __React.Component<IHiProps, IHiState> {
// render…
}
如何在 TypeScript 中正确呈现此组件?
var hiComponent: __React.Component<IHiProps, IHiState>;
hiComponent = __React.render(__React.createElement(Hi), { a: "A", b: "B" }, document.body);
这让我失望 'typeof Hi' 类型的参数无法分配给 'ComponentClass' 类型的参数。我正在使用来自 the DefinitelyTyped repository of Boris Yankov.
的明确类型文件像这样更改 class 是否有效?
class Hi extends __React.Component<IHiProps, IHiState> {
static propTypes: __React.ValidationMap<any> = {
a: __React.PropTypes.string,
b: __React.PropTypes.string
}
// render…
}
还使用 __React
是可疑的,因为它是 React.d.ts 的内部变量。在运行时不会有这样的变量 - 如果你不创建它。考虑使用模块:
/// <reference path="/path/to/react.d.ts" />
import * as React from React;