警告 期望一个赋值或函数调用,而是看到一个表达式
warning Expected an assignment or function call and instead saw an expression
当我使用这条线时:
this.state.selectedJobType.length > 0 ?
''
:
this.setState({ jobTypeErrMsg: 'Please select at least one job type'});
它抛出错误:
warning Expected an assignment or function call and instead saw an
expression:
因为三元运算符 return 条件基础上的值,而您正在使用三元运算符来更新状态,这就是原因。
condition ? expr1 : expr2;
三元运算符执行表达式[期望表达式应该产生某个值,可以是函数调用或直接任何值]和return结果那些表达。
使用 if 条件而不是三元运算符,如下所示:
if(this.state.selectedJobType.length)
this.setState({ jobTypeErrMsg: 'Please select at least one job type'})
三元运算符根据条件分配值,如下所示:
let a = 0==0 ? 1 : 0;
或者您可以在 JSX 中将其用于 conditional rendering
,如下所示:
<div>{ 0==0 ? 'true' : 'false' }</div>
或者根据条件调用其他函数:
1==1 ? a() : b();
DOCs:
Returns one of two expressions depending on a condition. If condition
is true, the operator returns the value of expr1; otherwise, it
returns the value of expr2.
当我使用这条线时:
this.state.selectedJobType.length > 0 ?
''
:
this.setState({ jobTypeErrMsg: 'Please select at least one job type'});
它抛出错误:
warning Expected an assignment or function call and instead saw an expression:
因为三元运算符 return 条件基础上的值,而您正在使用三元运算符来更新状态,这就是原因。
condition ? expr1 : expr2;
三元运算符执行表达式[期望表达式应该产生某个值,可以是函数调用或直接任何值]和return结果那些表达。
使用 if 条件而不是三元运算符,如下所示:
if(this.state.selectedJobType.length)
this.setState({ jobTypeErrMsg: 'Please select at least one job type'})
三元运算符根据条件分配值,如下所示:
let a = 0==0 ? 1 : 0;
或者您可以在 JSX 中将其用于 conditional rendering
,如下所示:
<div>{ 0==0 ? 'true' : 'false' }</div>
或者根据条件调用其他函数:
1==1 ? a() : b();
DOCs:
Returns one of two expressions depending on a condition. If condition is true, the operator returns the value of expr1; otherwise, it returns the value of expr2.