首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TS2339:当移植到Typescript时,在类型“”typeof React“”上不存在属性“”PropTypes“”

TS2339:当移植到Typescript时,在类型“”typeof React“”上不存在属性“”PropTypes“”
EN

Stack Overflow用户
提问于 2018-02-23 06:43:25
回答 2查看 11K关注 0票数 6

我目前正在将一个javascript/react项目转换为一个typescript/react/redux项目。

我现在有一个关于这个文件的问题:

代码语言:javascript
复制
import React from 'react';
import GoldenLayout from 'golden-layout';
import {Provider} from 'react-redux';
import Default from '../modules/m-Default/Default';

interface GoldenLayoutWrapperProps {}

interface GoldenLayoutWrapperState {}

class GoldenLayoutWrapper extends React.Component <GoldenLayoutWrapperProps, GoldenLayoutWrapperState> {

    public layout;
    static contextTypes = {
        store: React.PropTypes.object.isRequired
    };

    private wrapComponent(Component, store) {
        class Wrapped extends React.Component {
            render () {
                return (
                    <Provider store={store}>
                        <Component {...this.props}/>
                    </Provider>
                )
            }
        }
        return Wrapped;
    }

    componentDidMount() {
        var layout = new GoldenLayout(this.layoutConfig, this.layout);

        layout.registerComponent('Default', this.wrapComponent(Default, this.context.store));
    }

    render() {
        return (
            <div className="golden-layout-wrapper" ref={input => this.layout = input}/>
        )
    }

    private layoutConfig = {}
}

   export default GoldenLayoutWrapper;

当我尝试编译时,我得到以下错误:

代码语言:javascript
复制
ERROR in [at-loader] ./src/main/GoldenLayoutWrapper.tsx:18:22 
TS2339: Property 'PropTypes' does not exist on type 'typeof React'.

在经历了一些磨难之后,有人建议给contextTypes一个静态修饰符,我也尝试过,但问题仍然存在。

可能的问题是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-23 07:03:33

由于您正在使用React v16.0.0,因此需要使用prop-types,因为从React v15.5开始,它被视为一个单独的库

您可以通过npm将其安装为项目依赖项。

代码语言:javascript
复制
npm install --save prop-types

然后在您想要使用它的组件内部:

代码语言:javascript
复制
import PropTypes from 'prop-types'; // ES6

您可以直接使用PropTypes而不是React.PropTypes

您可以阅读有关属性类型Here的更多信息

票数 9
EN

Stack Overflow用户

发布于 2018-02-23 06:52:02

请在此处查看我的答案以了解完整的细节:Cannot read property 'string' of undefined | React.PropTypes | LayoutPropTypes.js

简而言之,从React v15.5开始,React.PropTypes被弃用。您需要从npm安装prop-types包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48938443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档