Get cookie при первом рендеринге возвращает undefined с универсальным cookie

Я использую universal-cookie и пытаюсь получить файлы cookie при первом рендеринге. Однако он возвращает undefined, но когда я обновляю страницу, я вижу его.

Во-первых, мне нужно импортировать пакет cookie:

class PosAdmin extends Component{

cookies = new Cookies();

.....

Затем мне нужно установить cookie, что мне нравится. В моем обещании я получил:

.then(result => {
            if (result.value) {
                const cookieId = uuidv4();
                this.cookies.set(cookieDevicePairConstants.POS,
                    cookieId,
                    {
                        path: '/admin',
                        maxAge: 31536000
                    });
                const posToSelect = {
                    ...pos,
                    cookieId
                }
                this.props.updateSelectedPos({
                    variables: {
                        pos: posToSelect
                    }
                }).then(() => {
                    this.props.pairPosWithDevice({
                        variables: {
                            posId: posToSelect.id,
                            cookieId
                        }
                    });
                    }).then(() => {
                        this.props.posQuery.updateQuery((prev) => {
                            const newData =
                                prev.getPoses.map(pos => posToSelect.id === pos.id ? posToSelect : pos);
                            return { getPoses: newData };
                        });
                    });
            }
        });

И когда я пытаюсь получить cookie, я делаю это внутри своего render:

let thisDeviceCookieId = this.cookies.get(cookieDevicePairConstants.POS);

Но сначала он возвращает undefined, но после того, как я обновляю страницу, я вижу там значение. Я абсолютно не понимаю, что не так, и я ценю всю помощь, которую могу получить.

Спасибо, что уделили время чтению.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
988
1

Ответы 1

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

Я заметил это в некоторых ситуациях, когда для свойства sameSite файла cookie установлено значение «strict», особенно когда сторонний веб-сайт перенаправляется на мой. Это не просто проблема универсального файла cookie, поскольку файл cookie также отсутствует в свойстве document.cookie. Убедитесь, что для свойства sameSite файла cookie установлено значение "lax", "none" или "unset" или, возможно, что свойство "path" файла cookie совпадает с тем же путем, на который перенаправлено третье лицо (не проверено это). Я подозреваю, что если он "не установлен", некоторые настройки безопасности браузера могут по умолчанию быть строгими? В любом случае, изменение свойства sameSite для файла cookie решило эту проблему для меня.

Другие вопросы по теме