TypeScript - React 上下文不适用于新的 PropTypes 包
TypeScript - React context does not work with new PropTypes package
以下使用 React.PropTypes
的代码工作正常,但它会产生预期的警告(不推荐通过主 React 包访问 PropTypes...):
import * as React from 'react';
export class BackButton extends React.Component<{}, {}> {
static contextTypes = {
router: React.PropTypes.object
};
render() {
return (
<button onClick={this.goBack}>Back</button>
);
}
goBack = () => {
this.context.router.history.goBack();
}
}
如果我现在用新的 PropTypes
包替换 React.PropTypes
,我会得到一个类型错误:"Cannot read property 'object' of undefined":
import * as React from 'react';
import PropTypes from 'prop-types';
export class BackButton extends React.Component<{}, {}> {
static contextTypes = {
router: PropTypes.object
};
render() {
return (
<button onClick={this.goBack}>Back</button>
);
}
goBack = () => {
this.context.router.history.goBack();
}
}
我做错了什么?
这不是使用 TypeScript 导入 prop-types
的正确方法。
你必须使用
import * as PropTypes from 'prop-types';
而不是
import PropTypes from 'prop-types';
以下使用 React.PropTypes
的代码工作正常,但它会产生预期的警告(不推荐通过主 React 包访问 PropTypes...):
import * as React from 'react';
export class BackButton extends React.Component<{}, {}> {
static contextTypes = {
router: React.PropTypes.object
};
render() {
return (
<button onClick={this.goBack}>Back</button>
);
}
goBack = () => {
this.context.router.history.goBack();
}
}
如果我现在用新的 PropTypes
包替换 React.PropTypes
,我会得到一个类型错误:"Cannot read property 'object' of undefined":
import * as React from 'react';
import PropTypes from 'prop-types';
export class BackButton extends React.Component<{}, {}> {
static contextTypes = {
router: PropTypes.object
};
render() {
return (
<button onClick={this.goBack}>Back</button>
);
}
goBack = () => {
this.context.router.history.goBack();
}
}
我做错了什么?
这不是使用 TypeScript 导入 prop-types
的正确方法。
你必须使用
import * as PropTypes from 'prop-types';
而不是
import PropTypes from 'prop-types';