以下使用 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
,我会得到一个 TypeError:“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
的正确方法。
你必须使用
从“prop-types”导入 * 作为 PropTypes;
代替
从“prop-types”导入 PropTypes;
关于reactjs - TypeScript - React 上下文不适用于新的 PropTypes 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269734/