Я использую 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, но после того, как я обновляю страницу, я вижу там значение. Я абсолютно не понимаю, что не так, и я ценю всю помощь, которую могу получить.
Спасибо, что уделили время чтению.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


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