Как установить переменную состояния в магазине, только если она еще не установлена?

Я использую 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
Другие вопросы по тегам