У меня есть зависимость между свойствами в состоянии моего приложения, которые я не знаю, как выразить в Vuex.
Пользователь может войти в систему, а затем выбрать одно из многих рабочих пространств для подключения.Очевидно, что он не может подключиться к рабочему пространству, если он не вошел в систему. С этой зависимостью рабочей области у меня возникают проблемы.
Способ "грубой силы" сделать эту работу перед каждымдоступ к данным рабочей области, чтобы вручную проверить, вошел ли пользователь в систему. Однако эту проверку легко забыть, поэтому я хотел бы использовать такую альтернативу:
Если я могу вложить рабочую область как свойство сеансаЯ мог бы заставить пользователей магазина проверить, присутствует ли сеанс, прежде чем они получат доступ к рабочему пространству (например, используя строгий режим TypeScript).
type State = {
session?: {
userInfo: {username: string},
workspaceInfo: {workspaceId: string},
}
}
При строгой настройке TypeScript будет предупреждать при доступе к state.session.workspaceInfo
,не убедившись, что session
определено.Это решение, которым я был бы доволен.
К сожалению, я не знаю, как представить это в Vuex, потому что я не могу «вкладывать» подмодуль в состояние или делать модуль «необязательным» вощущение, что оно может быть неопределенным.
Есть ли решение, которое моделирует эту зависимость в Vuex?