2017-04-04 1 views

答えて

0

this.state.selectedJobType.length > 0 ? 
    '' 
    : 
    this.setState({ jobTypeErrMsg: 'Please select at least one job type'}); 

それはエラーをスローします、あなたは状態を更新するために三項演算子を使用しているので、その理由があります。

condition ? expr1 : expr2; 

三項演算子は式を実行する[関数呼び出しまたは直接任意の値できるいくつかの値にもたらすべきである式期待]とその式の結果を返すことを。

使用このように、代わりに三項演算子の条件の場合:

if(this.state.selectedJobType.length) 
    this.setState({ jobTypeErrMsg: 'Please select at least one job type'}) 

三項演算子は、このように、条件に基づいて値を割り当てるために動作します:

let a = 0==0 ? 1 : 0; 

それとも、それを使用することができますconditional renderingのJSX内では、次のようになります。

<div>{ 0==0 ? 'true' : 'false' }</div> 

条件に基づいてTHER機能:

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.

関連する問題