以下使用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();
}
}
如果我现在用新的React.PropTypes
包替换PropTypes
,我会收到一个TypeError:&#34;无法读取属性&#39; object&#39;未定义&#34;:
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();
}
}
我做错了什么?
答案 0 :(得分:10)
这不是使用TypeScript导入prop-types
的正确方法。
你必须使用
import * as PropTypes from 'prop-types';
而不是
import PropTypes from 'prop-types';