Кто что думает?
Для чего это нужно? для нормальной работы со сложными структурами данных и в частности для передачи этих структур между компонентами.
Object.assign и JSON.parse(JSON.stringify) не предлагать.
Задача иметь глобальные переменные, которые можно МЕНЯТЬ из любого компонента.
Кто что думает? Для чего это нужно? для нормальной работы со сложными структурами данных и в частности для передачи этих структур между компонентами. Object.assign и JSON.parse(JSON.stringify) не предлагать. Задача иметь глобальные переменные, которые можно МЕНЯТЬ из любого компонента.
можно попробовать замутить singleton паттерн в компоненте лвц - и тогда у тебя будут шареные между разными компонент переменные
можно попробовать замутить singleton паттерн в компоненте лвц - и тогда у тебя будут шареные между разными компонент переменные
Пробовал, но как только ты передаешь переменную через @api, сразу получаешь locker
[quote="Maxim Elets"]можно попробовать замутить singleton паттерн в компоненте лвц - и тогда у тебя будут шареные между разными компонент переменные[/quote] Пробовал, но как только ты передаешь переменную через @api, сразу получаешь locker
Ребят привет! какие есть другие варианты для поставленной задачи (Задача иметь глобальные переменные, которые можно МЕНЯТЬ из любого компонента.)- очень нужно решение завис над этим... Заранее Спасибо!
Ребят привет! какие есть другие варианты для поставленной задачи (Задача иметь глобальные переменные, которые можно МЕНЯТЬ из любого компонента.)- очень нужно решение завис над этим... Заранее Спасибо!
Перечитай мой пост, в нем ответ.
[quote="Vladimir"]Ребят привет! какие есть другие варианты для поставленной задачи[/quote] Перечитай мой пост, в нем ответ.
Что за пост? Скинь ссылку плиз.
[quote="wilder"]Перечитай мой пост[/quote] Что за пост? Скинь ссылку плиз.
[quote="Vladimir"]Задача иметь глобальные переменные, которые можно МЕНЯТЬ из любого компонента.[/quote]Events?
Так и не нашел я решение... нужна альтернатива localStorage потому что он не работает в Lightning. Посыл таков чтоб некоторая логика происходила на компьютере пользователя и работало с JS контроллерами разных компонентов без запросов на сервак
Так и не нашел я решение... нужна альтернатива localStorage потому что он не работает в Lightning. Посыл таков чтоб некоторая логика происходила на компьютере пользователя и работало с JS контроллерами разных компонентов без запросов на сервак
кто сказал что localStorage не работает в LWC?
[quote="Vladimir"]Так и не нашел я решение... нужна альтернатива localStorage потому что он не работает в Lightning. Посыл таков чтоб некоторая логика происходила на компьютере пользователя и работало с JS контроллерами разных компонентов без запросов на сервак[/quote] кто сказал что localStorage не работает в LWC?
Пробовал, но как только ты передаешь переменную через @api, сразу получаешь locker <- из этого следует решение проблемы
[quote="Dmitry Shnyrev"]Пробовал, но как только ты передаешь переменную через @api, сразу получаешь locker[/quote] Пробовал, но как только ты передаешь переменную через @api, сразу получаешь locker <- из этого следует решение проблемы
в компонентах начиная с API-40 автоматически включен Loker servis который "оборачивает"(key,value)в обвертку из-за которой стает не возможным получать value по ключу используя метод localStorage.getItem(key). В итоге получается Key: LSSIndex:LOCAL{"namespace":"c"} Value: {"page":3} где 3 стала новым ключем а уж в нём мой параметр 3 : null который мне нужно менять в зависимости от условий. Сразу скажу SF занимаюсь не долго не судите строго!!
в компонентах начиная с API-40 автоматически включен Loker servis который "оборачивает"(key,value)в обвертку из-за которой стает не возможным получать value по ключу используя метод localStorage.getItem(key). В итоге получается Key: LSSIndex:LOCAL{"namespace":"c"} Value: {"page":3} где 3 стала новым ключем а уж в нём мой параметр 3 : null который мне нужно менять в зависимости от условий. Сразу скажу SF занимаюсь не долго не судите строго!!
Ну не знаю мои компоненты работают на 46 версии.
Пример:
let localConfig = localStorage.getItem('DC:config:' + this.recordId);
[quote="Vladimir"]в компонентах начиная с API-40 автоматически включен Loker servis который "оборачивает"(key,value)в обвертку из-за которой стает не возможным получать value по ключу используя метод localStorage.getItem(key). В итоге получается Key: LSSIndex:LOCAL{"namespace":"c"} Value: {"page":3} где 3 стала новым ключем а уж в нём мой параметр 3 : null который мне[/quote] Ну не знаю мои компоненты работают на 46 версии. Пример: let localConfig = localStorage.getItem('DC:config:' + this.recordId);
Ну не знаю мои компоненты работают на 46 версии.
Пример:
let localConfig = localStorage.getItem('DC:config:' + this.recordId);
+1 работает все
пользуем такую же штуку
[quote="wilder"][quote="Vladimir"]в компонентах начиная с API-40 автоматически включен Loker servis который "оборачивает"(key,value)в обвертку из-за которой стает не возможным получать value по ключу используя метод localStorage.getItem(key). В итоге получается Key: LSSIndex:LOCAL{"namespace":"c"} Value: {"page":3} где 3 стала новым ключем а уж в нём мой параметр 3 : null который мне[/quote] Ну не знаю мои компоненты работают на 46 версии. Пример: let localConfig = localStorage.getItem('DC:config:' + this.recordId);[/quote] +1 работает все пользуем такую же штуку
Привет! Спасибо за помощь!! Есть ещё вопрос ...
Описание:
1 User с профилем worker логинится в https://login.salesforce.com/
2 направляется на Flow (кастомный компонент!)( форма запрашивающая его личный пароль ) по этому паролю достает с бека его запись и
его поле Worker_Id__c и пытаюсь сделать так
document.cookie = "workerId = " + escape(component.get("v.workerId") );
localStorage.setItem("workerId", component.get("v.workerId"));
sessionStorage.setItem("workerId", component.get("v.workerId"));
3 далее открывается app с некоторыми компонентами в init которых пытаюсь достать эту workerId путём
document.cookie.split(';').filter((item) => item.includes('workerId')
localStorage.getItem('workerId') и не получается...
как можно это реализовать иначе или в чём ошибка?
Привет! Спасибо за помощь!! Есть ещё вопрос ... Описание: 1 User с профилем worker логинится в https://login.salesforce.com/ 2 направляется на Flow (кастомный компонент!)( форма запрашивающая его личный пароль ) по этому паролю достает с бека его запись и его поле Worker_Id__c и пытаюсь сделать так document.cookie = "workerId = " + escape(component.get("v.workerId") ); localStorage.setItem("workerId", component.get("v.workerId")); sessionStorage.setItem("workerId", component.get("v.workerId")); 3 далее открывается app с некоторыми компонентами в init которых пытаюсь достать эту workerId путём document.cookie.split(';').filter((item) => item.includes('workerId') localStorage.getItem('workerId') и не получается... как можно это реализовать иначе или в чём ошибка?
Для начала стоит проверить что вообще содержится в
document.cookie
и
localStorage
Есть ли там вообще workerId (или что-то похожее)
Если нет, то искать проблему там где переменная записывается.
Если есть разбираться с тем как вы пытаетесь ее достать:
- может .split(';').filter((item) => item.includes('workerId') не работает
- workerId переменная имеет более сложное имя.
А вот эта пометка "( форма запрашивающая его личный пароль )" вообще сильно настораживает. Личный пароль нельзя нигде запрашивать. Он запрашивается только однажды при входе и то самим Salesforce а не какими-то кастомными компонентами. Не знаю как в Lightning но обычно для всяких нужд вместо пароля используется SessionID
Для начала стоит проверить что вообще содержится в document.cookie и localStorage Есть ли там вообще workerId (или что-то похожее) Если нет, то искать проблему там где переменная записывается. Если есть разбираться с тем как вы пытаетесь ее достать: - может .split(';').filter((item) => item.includes('workerId') не работает - workerId переменная имеет более сложное имя. А вот эта пометка "( форма запрашивающая его личный пароль )" вообще сильно настораживает. Личный пароль нельзя нигде запрашивать. Он запрашивается только однажды при входе и то самим Salesforce а не какими-то кастомными компонентами. Не знаю как в Lightning но обычно для всяких нужд вместо пароля используется SessionID
ocalStorage.getItem('workerId') и не получается...
как можно это реализовать иначе или в чём ошибка?
А что именно не получается, было бы не плохо понять: вылазит ошибка? или значение пустое?
Ну и еще куки все storage могут быть заданы в разных доменах
поэтому их и не получается получить
[quote="Vladimir"]ocalStorage.getItem('workerId') и не получается... как можно это реализовать иначе или в чём ошибка?[/quote] А что именно не получается, было бы не плохо понять: вылазит ошибка? или значение пустое? Ну и еще куки все storage могут быть заданы в разных доменах поэтому их и не получается получить
после открытия App в локале сейшн и в куках во всех только один и тот же домен в котором нет такого ключа и намека на него в куках обычно добавляется LSKey[c] к workerId в стореджах что то типа
LSSNextSynthtic:LOCAL 2
LSSIndex:LOCAL{"namespace":"c"} {"workerId":1}
1 undefined
где 1 и его значени и есть мой workerId и достать значение получалось (в других проектах)
типа так localStorage.getItem("LSSNextSynthtic:LOCAL") - 1).toString();
ошибок нет! И нет ни ключа ни значения
после открытия App в локале сейшн и в куках во всех только один и тот же домен в котором нет такого ключа и намека на него в куках обычно добавляется LSKey[c] к workerId в стореджах что то типа LSSNextSynthtic:LOCAL 2 LSSIndex:LOCAL{"namespace":"c"} {"workerId":1} 1 undefined где 1 и его значени и есть мой workerId и достать значение получалось (в других проектах) типа так localStorage.getItem("LSSNextSynthtic:LOCAL") - 1).toString(); ошибок нет! И нет ни ключа ни значения
Я так понимаю, человек пытается сьэкономить на лицензиях?
Я так понимаю, человек пытается сьэкономить на лицензиях?
нет такой задачи!!!
то-есть если приобрести лицензию то такой подход будет работать?
И о какой лицензии идет речь?
;) нет такой задачи!!! то-есть если приобрести лицензию то такой подход будет работать? И о какой лицензии идет речь?
Может, Community подойдет больше?
Может, Community подойдет больше?