Nar*_*esh 1 typescript reactjs react-proptypes
以下使用的代码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();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我现在React.PropTypes用新PropTypes包替换,我得到一个TypeError:"无法读取未定义的属性'对象':
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();
}
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
QoP*_*QoP 10
这不是prop-types使用TypeScript 导入的正确方法.
你必须使用
import * as PropTypes from 'prop-types';
代替
import PropTypes from 'prop-types';