如果尚未设置状态变量,如何只在商店中设置呢?

时间:2019-04-07 06:01:52

标签: ruby-on-rails ruby reactjs isomorphic hyperstack

我正在使用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中设置状态变量来解决此问题,并且仅在未设置状态变量的情况下设置其他变量,但是我想知道是否有更好的方法来解决这个问题? / p>

1 个答案:

答案 0 :(得分:1)

您应该将初始化周围的逻辑移到您的存储中。请记住,在Ruby中,可以在定义类时初始化类实例变量:

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