Если цепочка завершится неудачно, выражение оценивается как undefined
.
Когда дочерний элемент оценивается как undefined
, он просто не будет отображаться .
Условный рендеринг - это уже довольно распространенная стратегия. Ранее, когда у вас есть что-то, что может быть массивом или может быть undefined
, и вы хотите отобразить , если есть массив, вы должны были бы сделать что-то вроде:
{ items && items.map( ...
Это работает, потому что, если items
равно undefined
, все выражение будет оценено как undefined
, и рендеринг не произойдет, и не будет выдано никаких ошибок.
Использование опциональной цепочки работает точно Точно так же, за исключением того, что это более кратко. Так что да, это вполне допустимая вещь.
Необязательная цепочка stage 4 , так что вы можете рассчитывать на ее надежную работу.
Массивы являются объекты . Но необязательное сцепление не только для объектов - оно может работать для всего, что может иметь свойство или метод. Например, const bar = foo?.toFixed(2)
будет работать нормально, если foo
- это null
, undefined
или число (числа имеют метод toFixed
).