Я думаю, что необязательная цепочка — это действительно классная функция, и я хотел бы использовать ее в LWC, к тому же она уже включена в Apex, yohoo.

Если я попытаюсь написать что-то вроде state={candidate?.First_Name__c?.state}, Salesforce вернет This experimental syntax requires enabling the parser plugin: 'optionalChaining'.

В github я нашел людей, говорящих об этом в репозитории LWC, но на самом деле не нашел, как его включить.

Кто-нибудь смог этого добиться?

9
ytiq 15 Сен 2020 в 09:24
1
Не могли бы вы добавить ссылку, где об этом говорилось, пожалуйста?
 – 
Phil W
15 Сен 2020 в 09:53
1
 – 
ytiq
16 Сен 2020 в 09:52
В этой статье упоминается, что это так. еще не поддерживается. Также они рассказали о некоторых обходных решениях, которые работают только для lwc oss.
 – 
Rahul Gawale
18 Сен 2020 в 07:07
Да, это, вероятно, возможно только для OSS, пока.
 – 
ytiq
18 Сен 2020 в 11:56

2 ответа

Лучший ответ

На сегодняшний день вы можете использовать необязательную цепочку в LWC, если браузер, в котором вы запускаете приложение, поддерживает это (часто в современных браузерах), поскольку мы не транспилируем синтаксис. Взгляните на более подробное объяснение здесь.

3
Alba Rivas 16 Мар 2021 в 12:34
Yey, большое спасибо за обновление. я бы пропустил
 – 
ytiq
16 Мар 2021 в 14:30
Как заставить его работать с lwc-jest?
 – 
dzh
30 Мар 2021 в 05:28
Какая у тебя проблема? для меня это работает. Убедитесь, что вы используете последнюю версию "@salesforce/sfdx-lwc-jest": "^0.9.2"
 – 
Alba Rivas
31 Мар 2021 в 10:47
Я обнаружил проблему с использованием необязательной цепочки в LWC. Иногда он превращает код во что-то причудливое, когда его минимизируют: chaining-operator" title="уменьшенный код в lwc неверен из-за необязательного оператора цепочки">salesforce.stackexchange.com/questions/346534/….
 – 
unhinged
11 Июн 2021 в 02:57

Обновить

На данный момент поддерживается необязательная цепочка, если ее поддерживает ваш браузер.


Необязательная цепочка, также известная как оператор безопасной навигации, является функцией ECMA 2020 (11). е издание),

Но на данный момент LWC поддерживает только указанные ниже версии скрипта ECMA (зима 2021 г.)

  • ES6 (ECMAScript 2015)
  • ES7 (ECMAScript 2016)
  • ES8 (ECMAScript 2017) — кроме Shared Memory и Atomics.
  • ES9 (ECMAScript 2018) — включая только свойства распространения объекта (не свойства остальных объектов). Статические общедоступные поля — в настоящее время на этапе 3 TC39.

Поддерживаемый Javascript

Надеюсь, мы скоро получим эту функцию!

7
Rahul Gawale 17 Мар 2021 в 10:13