【问题标题】:Strange Intellisense errors on React Connected Component in VS2017VS2017 中 React Connected Component 出现奇怪的 Intellisense 错误
【发布时间】:2017-10-23 09:28:58
【问题描述】:

我将 this .jsx 连接组件作为 .js 文件拉入我的 React-Redux 项目中,并且遇到了奇怪的错误,而我的任何其他组件都没有。

例如,这里的类名显示为灰色,并显示一条消息“从不使用局部变量 SignupVerify”,即使我将下面的 SignupVerify 导出为连接组件。

class SignupVerify extends Component
{..}

然后,在我的导出语句中,结束分号抛出错误:“} 预期”:

export default connect(mapStateToProps, actions)(SignupVerify);

我已经检查过,我的所有括号都在适当的位置闭合,并且 Intellisense 可以识别它。

这里也给我报错:

function mapStateToProps(state){
        return {
            errorMessage: state.auth.error,
            signup: state.auth.signup 
    }
} 

告诉我它希望我关闭第一个大括号。

在错误列表控制台中,我看到 ESLint:Component Definition is Missing Display Name。

有人知道这一切的背后是什么吗?

【问题讨论】:

    标签: reactjs ecmascript-6 visual-studio-2017 react-redux


    【解决方案1】:

    您的代码似乎没有任何问题。对我来说,Intellisense 工作得很好。我猜你有一个 ESLint 设置,它强制你为你的组件定义一个 displayName 。

    React 的虚拟 DOM 使用显示名称来命名组件。您可以在 Chrome 的 React Developer 工具中看到这些显示名称。

    尝试这样做:

    class SignupVerify extends Component {
      static displayName = 'SignupVerify';
    
      constructor(props) {
      ...
    

    或者在你的类定义下

    SignupVerify.displayName = 'SignupVerify';
    

    【讨论】:

    • 我认为这也可能是问题,但它并没有解决问题;不仅如此,我还有其他非常相似的组件,没有设置显示名称,但没有抛出错误。
    • 但是应用程序没有编译吗?或者它只是一个智能感知问题。我以前在使用 VSCode 时遇到过类似的问题,重新启动应用程序对我有帮助。
    • 应用程序编译;这似乎是一个智能感知问题。
    • 您是否尝试过分步输入代码?只需制作一个呈现 div 的组件,然后添加生命周期等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 2011-01-08
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多