gpt4 book ai didi

reactjs - TS2339 : Property 'PropTypes' does not exist on type 'typeof React' when porting to Typescript

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:21 25 4
gpt4 key购买 nike

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

我当前遇到此文件的问题:

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;

当我尝试编译时,出现以下错误:

ERROR in [at-loader] ./src/main/GoldenLayoutWrapper.tsx:18:22 
TS2339: Property 'PropTypes' does not exist on type 'typeof React'.

经过一番搜索,有人建议给 contextTypes 一个静态修饰符,我尝试了,但问题仍然存在。

可能是什么问题?

最佳答案

当您使用 React v16.0.0 时,您需要使用 prop-types 因为自 React v15.5 以来它被视为一个单独的库

你可以通过 npm 安装它作为项目依赖

npm install --save prop-types

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

import PropTypes from 'prop-types'; // ES6

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

您可以阅读更多关于 Prop 类型的信息 Here

关于reactjs - TS2339 : Property 'PropTypes' does not exist on type 'typeof React' when porting to Typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48938443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com