Die &&
Betreiber auswertet verändert hatte der linke Ausdruck zuerst, und wenn der linke Ausdruck zu etwas falsy ergibt, gibt den Wert des linken Ausdrucks zurück, ohne Pelz auszuwerten ther.
So (0 && "Bar")
wertet 0
aus, die dann als eine Zeichenfolge gerendert wird. Wenn alle Falsy-Werte im Rendering verworfen würden, wäre es nicht möglich, in React einen 0
zu drucken, zum Beispiel würde length is { 0 }
nur length is
drucken.
jedoch false
, null
und undefined
werden durch Reagieren Renderer verworfen, wenn als Kind, und es ist 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
Sie den Ausdruck linken benötigen Ihre &&
Betreiber einen von denen drei zurück, das einfachste Sein ein Boolean:
(!!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
Ist 'Test' in deinem Beispiel 'Länge' gemeint? – ctrlplusb
Ja, das habe ich verpasst. – Sven
Probieren Sie '{!! length && }' aus, um den Ausdruck Wahrheitstest zu erstellen. Im Grunde wird die Länge in einen booleschen Wert umgewandelt, so dass sie in einem Ausdruck verwendet werden kann. –
ctrlplusb