【问题标题】:JSX syntax error on PHPStormPHPStorm 上的 JSX 语法错误
【发布时间】:2015-07-24 23:09:15
【问题描述】:

我正在尝试有条件地设置元素集合的属性。

render: {
   var buttons = [];
   for (var i = 1; i <= this.props.totalWeeks; i++) {
      buttons.push(
         <button 
            onClick={ this.changeWeek.bind(this, i) } 
            disabled={ i === this.state.currWeek }>{ i }
         </button>);
   }
}

在浏览器中一切正常。但是 PHPStorm(8.0.3 版)将表达式 { i === this.state.currWeek } 标记为 wrong attribute value 的错误。

我尝试通过函数调用、变量等来改变它,但似乎无法让错误消失。我也尝试在 PHPStorm 上关闭该检查规则,但找不到可以关闭该检查规则的设置。

问题

如何在 PHPStorm 中消除该错误?如果这是一个错误,那么我怎样才能通过以其他方式有条件地将 HTML 属性添加到一组元素来摆脱它?

【问题讨论】:

  • 听起来像是 PHPStorm 中的一个错误。
  • 确实,我的朋友...
  • 您是否在 v9 EAP 版本中尝试过?
  • @LazyOne 我没有。我希望在不必升级整个 IDE 的情况下解决这个问题...
  • PhpStorm 2016.2 仍然存在这个问题(例如 被标记为“错误的属性值”)

标签: javascript syntax-error phpstorm react-jsx


【解决方案1】:

1) 如果它是 react 的渲染(不是你的自定义函数),它应该是 "render() { return ; }" 针对你的代码

这是 100% 的语法错误,浏览器会忽略它,因为它应该,如果你在类定义正文中使用它,语法是下一个:

class Test {
    objectExample: { some: "value" }
    functionExample() { return someExecutionCode(); }
    lambdaFunctionExample = () => { return someExecutionCode(); }
}

但是你同时混合了第一行和第二行,从对象定义开始,以主体作为函数,它们不适合。

2) 你的渲染函数不返回任何东西,它正在创建数组,但不返回它。

【讨论】:

    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 2017-08-31
    • 2016-09-23
    • 1970-01-01
    • 2018-08-02
    • 2017-10-01
    • 1970-01-01
    • 2019-04-17
    相关资源
    最近更新 更多