我在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规则,但无济于事。
答案 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和更高版本。