Как установить переменную состояния в магазине, только если она еще не установлена? - PullRequest
1 голос
/ 07 апреля 2019

Я использую Hyperstack Магазины и в 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 Ответ

1 голос
/ 07 апреля 2019

Вы должны переместить логику инициализации в свой магазин. Помните, что в Ruby переменные экземпляра вашего класса могут быть инициализированы в соответствии с определением класса:

class BridgeStore < HyperStore
  @show_card_sample = true
  class << self
    state_accessor :show_card_sample
  end
end
...