Как установить переменную состояния в магазине, только если она еще не установлена?
Я использую Hyperstack Stores и в before_mount
моего компонента, который я хочу сделать:
before_mount do
BridgeStore.show_card_sample ||= true
end
И в магазине:
class BridgeStore < HyperStore
class << self
state_accessor :show_card_sample
end
end
Но условное присвоение ||=
запускается каждый раз, когда отображается компонент этого типа.
Я знаю, что могу обойти это, установив переменную состояния в магазине state_accessor :is_set
и только установите другие переменные, если это не было установлено, но мне было интересно, есть ли лучший способ обойти это?
1 ответ
Решение
Вы должны переместить логику инициализации в свой магазин. Помните, что в Ruby переменные экземпляра вашего класса могут быть инициализированы в соответствии с определением класса:
class BridgeStore < HyperStore
@show_card_sample = true
class << self
state_accessor :show_card_sample
end
end