' Proptypes'没有定义

时间:2017-08-15 12:07:24

标签: reactjs eslint

我在https://github.com/facebookincubator/create-react-app

的帮助下设置了新的React

但是,我遇到了一个问题。我收到了以下linting错误'PropTypes' is not defined. (no-undef)

以下是导致此问题的代码:

import React, { Component } from 'react';
import PropTypes from 'prop-types';

class Routers extends Component {
  static propTypes = {
    history: PropTypes.object.isRequired
  };

...

我尝试使用react/prop-types规则,但无济于事。

7 个答案:

答案 0 :(得分:17)

自从反应15.5起,PropTypes就包含在单独的软件包“ prop-types”中。 所以这行会有所帮助

import PropTypes from 'prop-types'

您可以阅读更多here

答案 1 :(得分:8)

根据此问题comment

这似乎是因为您应该只使用create-react-app附带的eslint版本安装eslint 4.x。您应该删除手动安装的任何eslint,并使用repo附带的那个。

答案 2 :(得分:3)

我在全局安装eslint的项目中遇到了同样的问题。 我通过在项目中安装eslint manualy来解决这个问题: npm i eslint --save

再见 杰夫

答案 3 :(得分:1)

请安装道具类型

使用此代码:npm install --save道具类型

答案 4 :(得分:0)

如果您使用的是<script> tags;您可以添加此标签:

<script src="https://cdnjs.cloudflare.com/ajax/libs/prop-types/15.7.2/prop-types.min.js" integrity="sha512-ssNhh7jlzc+K93ckIlSXFHHz6fSFv0l619WOv8xbFNRbFOujbasb42LVMOggDrQR1ScJncoWb+KAJx1uF3ipjw==" crossorigin="anonymous"></script>

您可以获得minified/non-minified和其他version here

祝你好运...

答案 5 :(得分:-3)

您可以将PropTypes放在类之后(类之外):

<Window.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="MyResource1" x:Shared="false">
            <StackPanel>
                <TextBlock Background="{Binding background}">Hello World</TextBlock>
            </StackPanel>
        </DataTemplate>

        <!-- Resource2 and so on -->
    </ResourceDictionary>
</Window.Resources>

<Grid x:Name="Body">
    <!-- "background" is a property of the view model -->
    <ContentControl x:Name="Sample" Content="{Binding}" ContentTemplate="{StaticResource MyResource1}"/>
</Grid>

答案 6 :(得分:-5)

请安装prop-types npm软件包 - 在单独的软件包上创建响应1.15和更高版本。

Here to install package