Как вернуть нулевое значение после деструктурирования?

#javascript #object #ecmascript-6 #ternary-operator #destructuring

#javascript #объект #ecmascript-6 #тернарный оператор #деструктурирование

Вопрос:

Я пытаюсь отображать и скрывать текст на основе разрешения пользователя, который удаляется из пользовательского объекта, который имеет имя, адрес электронной почты и многое другое.

Я попытался установить нулевое значение в массив разрешений, но он все еще не работает

 <User>
    {({
      data: {
        me: { permissions = "" }
      }
    }) => (
      <div>
        {permissions === null amp;amp; <p>Welcome stranger</p>}
        {permissions === "USER" amp;amp; <p>welcome dear user</p>}
        {permissions === "ADMIN" amp;amp; <p>Welcome Dear Admin</p>}
      </div>
    )}
  </User>
  

Комментарии:

1. можете ли вы включить какой-нибудь код, который показывает, что вы делаете? ваше описание в лучшем случае расплывчато

2. вы устанавливаете разрешения на "" not null … поэтому проверьте "" или установите значение null …. и где permissions array я не вижу массива

3. вот как выглядит мой graphql в серверной части type User { id: ID! name: String! email: String! permissions: [Permission!]! cart: [CartItem!]! }

4. в моем интерфейсе я запрашиваю эти данные с помощью пользовательского компонента

Ответ №1:

У вас установлены настройки permissions "" , поэтому либо проверьте "" и null , либо установите permissions значение null .

Первый вариант:

 {(permissions === null || permissions === "") amp;amp; <p>Welcome stranger!</p>}
  

Второй вариант:

 me: { permissions: null }