Ошибка создания запроса на сертификат cannot read properties of undefined reading some

cades plugin, fzs roskazna - Всем доброго времени. Проблема - при формировании запроса на сертификат на портале УФК при переходе на генерацию ключа, не появляется окно ввода пароля подписи плагина и выбор носителя для записи,...

Форум КриптоПро
 » 
Общие вопросы
 » 
Общие вопросы
 » 
Нужна помощь! Ошибка Cannot read properties of undefined (reading ‘some’)


Offline

Алекс307

 


#1
Оставлено
:

17 октября 2022 г. 12:03:08(UTC)

Алекс307

Статус: Новичок

Группы: Участники

Зарегистрирован: 04.10.2019(UTC)
Сообщений: 8
Российская Федерация

Сказал(а) «Спасибо»: 2 раз

Всем доброго времени. Проблема — при формировании запроса на сертификат на портале УФК при переходе на генерацию ключа, не появляется окно ввода пароля подписи плагина и выбор носителя для записи, а выходит ошибка Cannot read properties of undefined (reading ‘some’).

ОС Astra Linux Орел 1.7.1
браузер Chromium GOST Версия 106.0.5249.91 (Официальная сборка), stable (64 бит)
КриптоПро CSP 5.0.11455
Версия плагина: 2.0.14589

p.s. в Яндекс браузере проверял, таже проблема, ID ошибки меняется, описание то же
p.p.s. Может кто победил проблему в отечественном линуксе, отпишите, пожалуйста, что делали
Спасибо
oshibka generacii kljucha_.png (128kb) загружен 11 раз(а).
jandeks_arm_fzs.png (131kb) загружен 4 раз(а).

Отредактировано пользователем 17 октября 2022 г. 12:15:49(UTC)
 | Причина: Не указана


Вверх


Offline

nickm

 


#2
Оставлено
:

17 октября 2022 г. 12:14:16(UTC)

nickm

Статус: Активный участник

Группы: Участники

Зарегистрирован: 31.05.2016(UTC)
Сообщений: 801

Сказал(а) «Спасибо»: 239 раз
Поблагодарили: 129 раз в 119 постах

Вот тут пользователь тоже с данной ошибкой столкнулся.


Вверх

thanks 1 пользователь поблагодарил nickm за этот пост.

Алекс307

оставлено 17.10.2022(UTC)

Пользователи, просматривающие эту тему

Guest

Форум КриптоПро
 » 
Общие вопросы
 » 
Общие вопросы
 » 
Нужна помощь! Ошибка Cannot read properties of undefined (reading ‘some’)

Быстрый переход
 

Вы не можете создавать новые темы в этом форуме.

Вы не можете отвечать в этом форуме.

Вы не можете удалять Ваши сообщения в этом форуме.

Вы не можете редактировать Ваши сообщения в этом форуме.

Вы не можете создавать опросы в этом форуме.

Вы не можете голосовать в этом форуме.

Форум КриптоПро
 » 
Средства криптографической защиты информации
 » 
Linux, Solaris etc.
 » 
Ошибка создания запроса на сертификат (0x8009001F) на сайте казначейства под Linux


Offline

Ivan Googe

 


#1
Оставлено
:

5 октября 2022 г. 6:39:54(UTC)

Ivan Googe

Статус: Новичок

Группы: Участники

Зарегистрирован: 09.06.2017(UTC)
Сообщений: 8
Российская Федерация

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах

Добрый день
После перехода на использование Альт Линукс столкнулись со следующей проблемой: под Linux невозможно создать электронную подпись на сайте Федерального казначейства.

При попытке формирования запроса на создание сертификат электронной подписи после ответа «ДА» в окне

Цитата:

https://signservice.roskazna.gov.ru/GenCerReq?requestId=09277e5e997d4ed89f33a9f244ed03ce030f01r03
Этот веб-сайт пытается выполнить операцию с ключами или сертификатами от имени пользователя.
Выполнение таких операций следует разрешать только для веб-сайтов, которым вы доверяете.
Чтобы отключить данное подтверждение для конкретного веб-сайта, его можно добавить в список доверенных веб-сайтов, доступный на странице настроек /etc/opt/cprocsp/trusted_sites.html .
Разрешить эту операцию?

возникает ошибка создания запроса на сертификат
The Keyset parameter is invalid. (0x8009001F)

версия КриптоПро 4.0.9963-5.x86_64.rpm

При этом под Windows всё работает


Вверх


Offline

Андрей Русев

 


#2
Оставлено
:

5 октября 2022 г. 11:20:59(UTC)

Андрей Русев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,066

Сказал(а) «Спасибо»: 10 раз
Поблагодарили: 321 раз в 243 постах

Здравствуйте.
Вероятно, причина в том, что при создании запроса создаётся ключевой контйенер. При этом может возникнуть ситуация неопределённости для провайдера: на каком ключевом носителе его создавать? В таком случае он выбрасывает окно выбора носителя. В КриптоПро CSP 4.0 такое окно реализовано только на Windows. Вариантов решения три:

  • использовать КриптоПро CSP 5.0 — в нём и на unix реализован этот диалог (это самый верный путь сделать свою жизнь проще)
  • при создании запроса на сертификат указать полное имя контейнера, который будет создан, чтобы устранить неопределённость (информационная система не всегда позволяет это сделать). пример: \.hdimageroskazna_cont
  • до создания запроса на сертификат удалить все считыватели, кроме одного, чтобы таким образом устранить неопределённость. Посмотреть доступные считыватели можно двумя способами:

    Код:

    root@mini-docker-11:~# /opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS -flags 32
    CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
    CryptAcquireContext succeeded.HCRYPTPROV: 11069187
    GetProvParam(...PP_ENUMREADERS...) until it returns false
    Flags: 0x20
      Len    Byte  NickName/Name/Media
    ___________________________________
     0x012a  0x58  FLASH
                   FLASH
                   NO_MEDIA
     0x012a  0x18  HDIMAGE
                   Структура дискеты на жестком диске
                   NO_UNIQUE
    Cycle exit when getting data. 2 items found. Level completed without problems.
    Total: SYS: 0.010 sec USR: 0.020 sec UTC: 0.050 sec
    [ErrorCode: 0x00000000]
    root@mini-docker-11:~# /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view  
    Nick name: FLASH
    Connect name:
    Reader name: FLASH
    
    Nick name: HDIMAGE
    Connect name:
    Reader name: Структура дискеты на жестком диске
    

    а удалить — так:

    Код:

    root@mini-docker-11:~# /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -del FLASH
    
    Deleting of the device [reader,rndm,media]:
    Nick name:FLASH
    
    The device has been deleted successfully.
    root@mini-docker-11:~# /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view  
    Nick name: HDIMAGE
    Connect name:
    Reader name: Структура дискеты на жестком диске
    

    После этого лучше убедиться, что при задании короткого имени (без указания считывателя) контейнер успешно создаётся:

    Код:

    root@mini-docker-11:~# /opt/cprocsp/bin/amd64/csptest -keyset -new -container aaa_test
    CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX.
    AcquireContext: OK. HCRYPTPROV: 10237747
    GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC1 CSP
    Container name: "aaa_test"
    Signature key is not available.
    Attempting to create a signature key...
    Press keys...
    [..........................................................................]
    
    CryptoPro CSP: Set password on produced container "aaa_test".
    Password:
    Retype password:
    a signature key created.
    Exchange key is not available.
    Attempting to create an exchange key...
    Press keys...
    [..........................................................................]
    
    sdan exchange key created.
    Keys in container:
      signature key
      exchange key
    Extensions:
      OID: 1.2.643.2.2.37.3.9
      PrivKey: Not specified - 05.01.2024 08:19:26 (UTC)
    
      OID: 1.2.643.2.2.37.3.10
      PrivKey: Not specified - 05.01.2024 08:19:32 (UTC)
    Total: SYS: 0.010 sec USR: 0.110 sec UTC: 15.460 sec
    [ErrorCode: 0x00000000]
    
  • Официальная техподдержка. Официальная база знаний.


    Вверх

    thanks 2 пользователей поблагодарили Андрей Русев за этот пост.

    Андрей *

    оставлено 05.10.2022(UTC),

    nickm

    оставлено 05.10.2022(UTC)


    Offline

    Ivan Googe

     


    #3
    Оставлено
    :

    11 октября 2022 г. 6:41:18(UTC)

    Ivan Googe

    Статус: Новичок

    Группы: Участники

    Зарегистрирован: 09.06.2017(UTC)
    Сообщений: 8
    Российская Федерация

    Сказал(а) «Спасибо»: 1 раз
    Поблагодарили: 2 раз в 1 постах

    теперь возникает другая ошибка

    Произошла ошибка
    ID: Y0TlXQ9f98mP1Pqfg

    Ошибка создания запроса на сертификат.
    Cannot read properties of undefined (reading ‘some’)

    Snimok ehkrana v 2022-10-11 13-39-09.png (111kb) загружен 27 раз(а).


    Вверх


    Offline

    Андрей Русев

     


    #4
    Оставлено
    :

    11 октября 2022 г. 11:34:26(UTC)

    Андрей Русев

    Статус: Сотрудник

    Группы: Администраторы, Участники
    Зарегистрирован: 16.04.2008(UTC)
    Сообщений: 1,066

    Сказал(а) «Спасибо»: 10 раз
    Поблагодарили: 321 раз в 243 постах

    Это какая-то внутренняя диагностика самого портала (не наша). По ней трудно что-то сказать. Можно наудачу посмотреть системные журналы, но шансы небольшие. Предлагаю вернуться к совету №1: не мучиться, а использовать КриптоПро CSP 5.0. Лучше сразу начинать с самой свежей версии 5.0 R3.

    Официальная техподдержка. Официальная база знаний.


    Вверх


    Offline

    Алекс307

     


    #5
    Оставлено
    :

    17 октября 2022 г. 16:25:15(UTC)

    Алекс307

    Статус: Новичок

    Группы: Участники

    Зарегистрирован: 04.10.2019(UTC)
    Сообщений: 8
    Российская Федерация

    Сказал(а) «Спасибо»: 2 раз

    Доброго времени, похожая проблема. ОС Astra Linux Орел 1.7.1, стоял билд 11455 КриптоПро 5, обновил до 12000, попробовал — тоже самое, обновил до 12500 — тоже самое. Куда дальше копать? Плагин отрабатывает отлично, подпись формирует.

    Ошибка как на скрине Cannot read properties of undefined (reading ‘some’)


    Вверх


    Offline

    Lehiks

     


    #6
    Оставлено
    :

    27 октября 2022 г. 9:13:24(UTC)

    Lehiks

    Статус: Активный участник

    Группы: Участники

    Зарегистрирован: 27.10.2022(UTC)
    Сообщений: 34
    Российская Федерация

    Сказал(а) «Спасибо»: 1 раз

    Подтверждаю проблему на Astra Linux!!!

    Появляется такая же ошибка. Ничего не могу сделать. Уже вытащил rutoken (хотя в последнее время он перестал видеться), все равно появляется такая же ошибка, как в посте выше. Раньше все работало, ничего не менялось.

    Помогите решить проблему. Ставить ради генерации ключей отдельную машину с виндой — не решение проблемы!


    Вверх


    Offline

    nickm

     


    #7
    Оставлено
    :

    27 октября 2022 г. 9:32:21(UTC)

    nickm

    Статус: Активный участник

    Группы: Участники

    Зарегистрирован: 31.05.2016(UTC)
    Сообщений: 801

    Сказал(а) «Спасибо»: 239 раз
    Поблагодарили: 129 раз в 119 постах

    Автор: Lehiks Перейти к цитате

    Появляется такая же ошибка. Ничего не могу сделать. Уже вытащил rutoken (хотя в последнее время он перестал видеться), все равно появляется такая же ошибка, как в посте выше. Раньше все работало, ничего не менялось.

    Сюда загляните пжлст.;

    Автор: Lehiks Перейти к цитате

    Помогите решить проблему. Ставить ради генерации ключей отдельную машину с виндой — не решение проблемы!

    Как раз такое решение на данный момент и предлагает тех.поддержка ФК, частичная цитата:

    Цитата:

    Имеется ли у Вас возможность сформировать запрос через OC WIN, чтобы получить новый сертификат не дожидаясь решения проблемы с OC LINUX?


    Вверх


    Offline

    Алекс307

     


    #8
    Оставлено
    :

    28 октября 2022 г. 9:57:29(UTC)

    Алекс307

    Статус: Новичок

    Группы: Участники

    Зарегистрирован: 04.10.2019(UTC)
    Сообщений: 8
    Российская Федерация

    Сказал(а) «Спасибо»: 2 раз

    В общем, УФК не пишет что за проблема. Они видимо все на виндовых машинах работают. Хоть бы написали, проблема глобальная, добавлена в багрепорт, пока решаем ее, работайте с генерацией ключей на вин.

    Проверил у коллег, в другой организации, тоже на Астре, думал у меня локальные проблемы с машиной, все тоже самое и у них. У других коллег на РЕД ОС таже штука, приходил к ним делать подпись.

    Поэтому могу сказать что проблема на отечественных ОС везде такая, с порталом ФЗС.
    Пока получаю отписки от УФК, как у Вас — есть ли виндовая машина для генерации ключа.


    Вверх


    Offline

    Lehiks

     


    #9
    Оставлено
    :

    28 октября 2022 г. 11:18:20(UTC)

    Lehiks

    Статус: Активный участник

    Группы: Участники

    Зарегистрирован: 27.10.2022(UTC)
    Сообщений: 34
    Российская Федерация

    Сказал(а) «Спасибо»: 1 раз

    Меня тоже спрашивали про возможность генерации на Винде. Написал что нет такой возможности.
    Причем раз у всех в одно время сломалось и никто, ничего не делал — значит что-то на портале поменялось.
    Не понял, на РЕД ОС тоже проблема или там генерится ключ?


    Вверх


    Offline

    Алекс307

     


    #10
    Оставлено
    :

    28 октября 2022 г. 11:51:09(UTC)

    Алекс307

    Статус: Новичок

    Группы: Участники

    Зарегистрирован: 04.10.2019(UTC)
    Сообщений: 8
    Российская Федерация

    Сказал(а) «Спасибо»: 2 раз

    Да, на РЕД ОС также как у людей на Астре и на Альте — таже ошибка при генерации ключа. Я так понял вообще бесполезно на любом линуксе пробовать, к сожалению Rosa linux нет, чтобы проверить, да и не нужно наверное.
    В общем, только винда.

    p.s. как вариант если есть 1 АРМ списанная, или неиспользующаяся, поднимать win 7,8,10 на выбор, либо попробовать на kvm виртуалку с win поднять (но это не точно — может не работать проброс флешек и токенов до целевой системы).

    Отредактировано пользователем 28 октября 2022 г. 11:53:46(UTC)
     | Причина: Не указана


    Вверх

    Пользователи, просматривающие эту тему

    Guest (2)

    Форум КриптоПро
     » 
    Средства криптографической защиты информации
     » 
    Linux, Solaris etc.
     » 
    Ошибка создания запроса на сертификат (0x8009001F) на сайте казначейства под Linux

    Быстрый переход
     

    Вы не можете создавать новые темы в этом форуме.

    Вы не можете отвечать в этом форуме.

    Вы не можете удалять Ваши сообщения в этом форуме.

    Вы не можете редактировать Ваши сообщения в этом форуме.

    Вы не можете создавать опросы в этом форуме.

    Вы не можете голосовать в этом форуме.

    Если при подписании на сайте ЕИС (ЕРУЗ) https://zakupki.gov.ru/ возникает ошибка «Cannot read properties of undefined (reading ‘CreateObjectAsync’)», мы рекомендуем в первую очередь использовать браузер Chromium GOST, так как ЕИС корректно работает именно в нём. Если вы планируете работать в Яндекс.Браузере — необходимо выполнить дополнительные настройки.

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

    Настройте для работы браузер Chromium GOST

    1. ​Установите браузер:

    • Автоматически с нашего Веб-диска. После установки переходите к пункту 2 инструкции.
    • Вручную по ссылке https://github.com/deemru/Chromium-Gost/releases/. На открывшейся странице выберите версию браузера, которая соответствует разрядности вашей операционной системы, разрядность вашей системы можно определить следующими способами:
      а) Нажать правой кнопкой мыши на Мой компьютер — Свойства.
       б) Нажать комбинацию клавиш Win+Pause.
        в) Нажать правой кнопкой мыши на Пуск — Система.
         г) Воспользоваться инструкцией от Microsoft.


    Запустите скачанный файл и следуйте подсказкам на экране для установки

    2. Запустите браузер Chromium GOST и откройте в нём ссылку https://chrome.google.com/webstore/detail/cryptopro-extension-for-c/iifchhfnnmpdbibifmljnfjhpififfog. Проверьте, что расширение с открывшейся страницы установлено (должна отобразиться кнопка «Удалить из Chrome»):

    Если вы видите кнопку «Установить» — нажмите её для установки расширения:

    3. Повторите подписание документов в ЕИС

    Настроить для работы Яндекс.Браузер

    1. Скачайте браузер по ссылке https://browser.yandex.ru/ . Если Яндекс.Браузер уже установлен и ранее ЕИС (ЕРУЗ) работал в нём корректно, то переходите к пункту 4.

    2. В Яндекс.Браузере зайдите в раздел «Настройки» — «Системные», либо откройте в нем ссылку: browser://settings/system

    Включите настройку «Подключаться к сайтам, использующим шифрование по ГОСТ. Требуется КриптоПро»:

    3. Установите расширение https://chrome.google.com/webstore/detail/cryptopro-extension-for-c/iifchhfnnmpdbibifmljnfjhpififfog так же, как это описано ранее в инструкции про Chromium GOST.

    4. Повторите подписание в ЕИС. Если ошибка сохранилась, для нормальной работы портала в Яндекс.Браузере нужно выключить расширение из каталога Opera: 


    Откройте «Настройки» — «Дополнения», либо откройте в браузере ссылку browser://tune/

    Отключите расширение Каталог КриптоПро ЭЦП переведя ползунок в левое положение:

    Внимание! Изменение этой настройки может негативно повлиять работу на некоторых сайтах, например на www.sberbank-ast.ruwww.rts-tender.ru и https://etp.gpb.ru/ . Решение об отключении вы принимаете самостоятельно!

    Перезапустите браузер и повторите подписание в ЕИС.

    Электронные подписи используются в течение последнего десятилетия всё чаще. Благодаря им, нет необходимости посещать локацию заключения сделки, чтобы подтвердить документы. Всё можно сделать дистанционно, находясь в любой точке мира — главное, чтобы были компьютер и интернет. Это улучшает комфортность и даёт новые возможности бизнесу, а также ЭЦП безопасны и надёжны, ведь подделать их невозможно.

    Однако иногда бывает, что техника подводит, и появляются какие-либо сложности с использование электронно-цифровой подписи. И эти проблемы обычно негативно влияют на бизнес, задерживают его. В этой статье рассмотрим ошибку Cannot read properties of undefined (reading ‘CreateObjectAsync’), которая возникает при подтверждении документов на сайте Госзакупок. Узнаем, как решить эту проблему максимально быстро и самостоятельно, начав от простых действий.

    Содержание

    1. Перезагрузка компьютера
    2. Переход на другой браузер
    3. Установка расширения CryptoPro Extension for CAdES Browser Plug-in
    4. Переустановка КриптоПро ЭЦП
    5. Обновление сертификатов в КриптоПро ЭЦП
    6. Отключение расширения браузера
    7. Отключение антивируса
    8. Обновление браузера

    ЭЦП

    Перезагрузка компьютера

    Перезагрузка — панацея от многих компьютерных проблем. Это самое быстрое, что можно сделать, если что-то работает не так, как надо и в большинстве случаев это простое действие действительно помогает. Поэтому начните с перезагрузки вашего компьютера.

    Во время этого перезагрузится не только компьютер, но также и браузер, в котором вы пользовались Госзакупками, и программа КриптоПро ЭЦП, что тоже может помочь решить проблему. После успешной загрузки компьютера попробуйте снова совершить действие, при котором появилась ошибка Cannot read properties of undefined (reading ‘CreateObjectAsync’).

    Переход на другой браузер

    Некоторые пользователи советуют использовать браузер Спутник или Internet Explorer. Первый вариант рекомендуется больше. Скачивать и устанавливать необходимо не просто браузер Спутник, а ту версию, которая поддерживает криптографию https://www.sputnik-lab.com/news/suspend.

    Internet Explorer тоже некоторым помог решить эту ошибку. Но этот вариант немного хуже, чем Спутник, потому что данный браузер больше не поддерживается разработчиком и в последних версиях Windows его нет. Однако по мнению многих, он лучше всех работает с сайтами, подобным Госзакупкам.

    Установка расширения CryptoPro Extension for CAdES Browser Plug-in

    При появлении ошибки Cannot read properties of undefined (reading ‘CreateObjectAsync’) некоторым помогло расширение CryptoPro Extension for CAdES Browser Plug-in. Это расширение для браузера Google Chrome и оно будет работать только в нём. Установите его, а потом попробуйте снова подтвердить документ на Госзакупках.

    Цифровая подпись

    Переустановка КриптоПро ЭЦП

    КриптоПро ЭЦП — это программа, которая устанавливается на компьютер. Она обеспечивает связь между сайтом, где происходит подтверждение документов, и электронными сертификатами подписей, которые хранятся на компьютере. Естественно, что если в этой программе сбой, то подтвердить документы не получится и появится ошибка.

    Поэтому, если описанные способы не помогают, то рекомендуется переустановить КриптоПро ЭЦП. Для этого её надо сначала удалить с компьютера, а потом скачать с сайта разработчика и установить заново https://www.cryptopro.ru/products/cades/plugin. Если вы затрудняетесь удалить программу, то попробуйте просто установить её заново, тогда программа заменит все свои файлы на компьютере и это с большой вероятностью тоже поможет решить проблему с ошибкой.

    Обновление сертификатов в КриптоПро ЭЦП

    КриптоПро ЭЦП знает о сертификатах ровно столько, сколько ей укажет пользователь компьютера. Программа запоминает указанные пути хранения сертификатов. Если сертификаты на компьютере были переносы в другое месте или если произошёл какой то сбой от которого КриптоПро ЭЦП потеряла пути их хранения, то нужно указать их заново.

    Для этого откройте приложение КриптоПро ЭЦП и перейдите в раздел “Сервис”. Нажмите на кнопку “Обзор” и заново укажите путь на файл сертификата”.Путь на сертификат

    Отключение расширения браузера

    Расширения браузера, даже полезные, могут мешать работать КриптоПро ЭЦП. Поэтому рекомендуется их временно отключить и попробовать подтвердить документ на Госзакупках заново.

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

    Отключение антивируса

    Многие пользователи знают, что антивирусы часто срабатывают ложно. И даже совершенно безобидные файлы помечают как вредоносные. Это приводит к нарушению работы некоторых программ, и с КриптоПро ЭЦП это тоже может быть.

    Поэтому на время пользования КриптоПро ЭЦП, если появляется ошибка, рекомендуется отключать антивирус. Также рекомендуется переустановить КриптоПро ЭЦП именно с отключенным антивирусом.

    Вам будет это интересно: Чем опасна электронная подпись для физических лиц?

    Обновление браузера

    Современные браузеры часто обновляются. Это делается не только для того, чтобы улучшить его функциональность и добавить новые возможности, но и для защиты. Потому что новые способы взломов и атак появляются тоже часто. Когда дело касается ЭЦП, безопасность на первом месте. Поэтому программа КриптоПро ЭЦП может не работать с устаревшей версией браузера. Обновление браузера в этом случае решает проблему.

    Кстати, на компьютерах с устаревшей версий Windows XP обновить браузер не получится, потому что разработчики перестали поддерживать эту операционную систему. Однако, несмотря на это, ею всё ещё некоторые пользуются. В этом случае нужно использовать более современный компьютер, чтобы установить на него актуальную версию браузера.

    I have a problem with React conditional rendering. I want to render a specific prop if it’s set so first I’m checking if the prop exists and then outputing it otherwise output 0, but React has a problem checking if the variable exists when it’s undefined at first load…

    number:
        props.dashboardCards[0].items.thisMonth[0].itemTitle
          ? props.dashboardCards[0].items.thisMonth[0].itemTitle
          : 0,
    

    This is my code I want to create an object with number field and in that field I want to set this prop if it exists otherwise 0.
    And React keeps giving me error:

    TypeError: Cannot read properties of undefined (reading ‘itemTitle’)

    asked Nov 1, 2021 at 17:59

    Floky99's user avatar

    2

    thisMonth is probably empty or undefined. You can use optional chaining to solve this:

    number: props.dashboardCards[0]?.items?.thisMonth[0]?.itemTitle ?? 0,
    

    Now if props.dashboardCards[0].items.thisMonth[0].itemTitle exists number will be the value of it, or it’ll be 0.

    The optional chaining operator (?.) enables you to read the value of a property located deep within a chain of connected objects without having to check that each reference in the chain is valid.

    Learn more about optional chaining from here.

    answered Nov 1, 2021 at 18:08

    Shakirul Hasan's user avatar

    Shakirul HasanShakirul Hasan

    6161 gold badge5 silver badges14 bronze badges

    1

    The error says that there is no itemTitle in the thisMonth array.

    If it’s coming from the API, you need to wait to get it. You can simply check the props by the console.log(props) and check it before using dot notation to get the itemTitle.

    You can also check for a value with optional chaining ? :

    props?.dashboardCards[0]?.items?.thisMonth[0]?.itemTitle
    

    It means:

    if(props){
      if(dashboardCards[0]){
        if(items){
          if(thisMonth[0]){
            props.dashboardCards[0].items.thisMonth[0].itemTitle
          }
        }
      }
    }
    

    answered Nov 1, 2021 at 18:06

    nima's user avatar

    nimanima

    6,98211 gold badges37 silver badges53 bronze badges

    Понравилась статья? Поделить с друзьями:
  • Ошибка создания запроса 0x80070002 континент ап
  • Ошибка создания информационной базы microsoft sql server native client
  • Ошибка создания ole объекта comconnector
  • Ошибка создания игрового лобби sign of silence
  • Ошибка создания игрового лобби ghost watchers на пиратке