&&
オペレータ評価さの値を変更したことを保証するものではありません、それを記述します左側の式が最初に偽であると評価された場合、は、左側の式の値をファーを評価せずに返しますあなた。
したがって、(0 && "Bar")
は、0
と評価され、文字列としてレンダリングされます。レンダリングですべての偽値が破棄された場合、0
をReactに印刷する方法はありません。たとえば、length is { 0 }
はlength is
のみを出力します。
しかしfalse
、null
とundefined
は子として使用した場合、レンダラを反応させるので廃棄され、そしてそれはexactly for this use caseですされています
length is { 0 } // length is 0
length is { NaN} // length is NaN
length is { null } // length is
length is { false } // length is
length is { undefined } // length is
あなたはこれらの3つのいずれかを返すために、あなたの&&
演算子の左側の式を必要とし、最も単純なものはブール値です。
(!!length && "Bar") // evaluates to false, doesn't print
((length > 0) && "Bar") // evaluates to false, doesn't print
((length != 0) && "Bar") // evaluates to false, doesn't print
(Boolean(length) && "Bar") // evaluates to false, doesn't print
あなたの例で 'test'は' length'ですか? – ctrlplusb
はい、それを逃しました。 – Sven
'{!! length && }'を試して、表現の真理テストを行います。基本的に長さをブール値に強制し、式で使用できるようにします。 –
ctrlplusb