PHPStorm上的JSX语法错误

rod*_*ira 5 javascript syntax-error phpstorm react-jsx

我试图有条件地在元素集合上设置属性.

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>);
   }
}
Run Code Online (Sandbox Code Playgroud)

浏览器中的一切都很棒.但PHPStorm(版本8.0.3)将表达式标记{ i === this.state.currWeek }错误属性值的错误.

我已经尝试用函数调用,变量等来改变它,但似乎无法使错误消失.我也尝试关闭PHPStorm上的检查规则,但找不到一个可以关闭它的设置.

如何在PHPStorm中消除该错误?如果这是一个错误,那么如何通过有条件地将HTML属性添加到一组元素中来解决这个问题呢?

小智 0

1)如果它是re​​act的渲染(不是您的自定义函数),则它应该是针对您的代码的“render() { return ; }”

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

class Test {
    objectExample: { some: "value" }
    functionExample() { return someExecutionCode(); }
    lambdaFunctionExample = () => { return someExecutionCode(); }
}
Run Code Online (Sandbox Code Playgroud)

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

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