TypeScript - React上下文不适用于新的PropTypes包

时间:2017-07-23 20:42:39

标签: reactjs typescript 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();
    }
}

如果我现在用新的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();
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:10)

这不是使用TypeScript导入prop-types的正确方法。

你必须使用

import * as PropTypes from 'prop-types';

而不是

import PropTypes from 'prop-types';

webpackbin