ReactJS return条件判断のいくつかの形式
7887 ワード
原文の住所:http://blog.csdn.net/yf275908654/article/details/51078215
Reactでは、1つのコンポーネントのHTMLタグは、これらのラベルを生成するコードと内在的に密接に関連している.これは、循環や条件判断など、JavaScriptの強力な魔力を容易に利用できることを意味します.
コンポーネントに条件判定を追加したいですが、if/elseロジックはHTMLタグで表現しにくいです.JSXに直接if文を入れると無効なjavascriptが描画されます. 1 , 4 5 , , 8 1 , 4 5 , , 8 解決の方法は以下の通りです.は、3つの演算子 を使用する.は変数を設定し、属性に を参照する.論理情報を関数にカプセル化する .使用&演算子 三目演算子 1 , 4 5 , , 8 9, 10 1 , 4 5 , , 8 9, 10 以上の3つの演算子は正常に動作しますが、他の場合はうまく活用したいです. Componentの場合、重くて面倒に見えるかもしれませんので、この方法はおすすめしません.使用変数 1 , 4 5 , , 8 9, 10 11 1 , 4 5 , , 8 9, 10 11 条件判定を単独で外し、レンダーで関数呼び出しという形で条件結果を取得します.使用関数 1 , 4 5 , , 8 9, 10 11 1 , 4 5 , , 8 9, 10 11 勇気があって并び卵のは足を急ぎます論理和(&)演算子を使用する 1 , 4 5 , , 8 9, 10 1 , 4 5 , , 8 9, 10 nullまたはfalse値に対しては、Reactは何も出力されないので、条件判定は、希望文字列に続くバックのbollan値を使用して実施されてもよい. このbootlean値がtrueであれば、後続の文字列が使用され、逆に使用されない.
Reactでは、1つのコンポーネントのHTMLタグは、これらのラベルを生成するコードと内在的に密接に関連している.これは、循環や条件判断など、JavaScriptの強力な魔力を容易に利用できることを意味します.
コンポーネントに条件判定を追加したいですが、if/elseロジックはHTMLタグで表現しにくいです.JSXに直接if文を入れると無効なjavascriptが描画されます.
var IvanIf = React.createClass({
render: function () {
return(
if(true){ 'is-complete' }}> ...
);
}
});
var IvanIf = React.createClass({
getInitialState:function () {
return { isComplete:true };
},
render: function () {
return(
this.state.isComplete ? 'is-complete' : '' }> Hello Ivan .
);
}
});
var IvanIf = React.createClass({
getInitialState:function () {
return { isComplete:true };
},
getIsComplete:function(){
return this.state.isComplete ? 'is-complete' : '' ;
},
render: function () {
var isComplete = this.getIsComplete();
return(
<div className={ isComplete }> Hello Ivan .div>
);
}
});
var IvanIf = React.createClass({
getInitialState:function () {
return { isComplete:false };
},
getIsComplete:function(){
return this.state.isComplete ? 'is-complete' : '' ;
},
render: function () {
return(
this.getIsComplete() }> Hello Ivan .
);
}
});
var IvanIf = React.createClass({
getInitialState:function () {
return { isComplete:false };
},
render: function () {
return(
this.state.isComplete && 'is-complete' }> Hello Ivan .
);
}
});