Эта библиотека имеет настройку userStore , которая позволяет вам выбрать, где сохранить вашего пользователя. Прямо сейчас я хочу сохранить моего пользователя в Vuex store , но я не могу поместить туда свое состояние, потому что вам не разрешено изменять хранилище напрямую, и вы должны вместо этого использовать мутации. Так что мне нужно сделать что-то вроде:
this.$store.dispatch('saveUser', userData);
Так что это дает мне две проблемы в основном:
- Я должен использовать функцию , но userStore ожидает объект . Я думаю, что могу обойти это с помощью некоторого объявления класса, например:
class SaveUser {
constructor(store, user) {
store.dispatch('saveUser', user);
}
}
и передачи нового SaveUser справа от userStore, затем:
post_logout_redirect_uri: redirectUri,
redirect_uri: `${redirectUri}/callback`,
response_mode: 'query',
response_type: 'code',
scope: 'openid profile',
userStore: new SaveUser(this.$store, user);
немедленно вызвать функцию конструктора и, таким образом, решить проблему с необходимым объектом, хотя выполнение этого сразу вызовет новые проблемы, поскольку я сейчас использую new для побочных эффектов, но даже тогда возникает вторая проблема:
Теперь мне нужно как-то передать эти
данные пользователя , НО они никогда не появляются явно:
userStore: new SaveUser(this.$store, user);
Можете ли вы предложить мне сделать это более или менее идиоматически?