如果尚未设置状态变量,如何仅在 Store 中设置它?
How do I only set a state variable in a Store if it has not already been set?
我正在使用 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
中设置一个状态变量来解决这个问题,并且只在尚未设置的情况下设置其他变量,但我想知道是否有更好的方法来解决这个问题?
您应该将围绕初始化的逻辑移到您的商店中。请记住,在 Ruby 中,您的 class 实例变量可以初始化为 class 定义:
class BridgeStore < HyperStore
@show_card_sample = true
class << self
state_accessor :show_card_sample
end
end
我正在使用 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
中设置一个状态变量来解决这个问题,并且只在尚未设置的情况下设置其他变量,但我想知道是否有更好的方法来解决这个问题?
您应该将围绕初始化的逻辑移到您的商店中。请记住,在 Ruby 中,您的 class 实例变量可以初始化为 class 定义:
class BridgeStore < HyperStore
@show_card_sample = true
class << self
state_accessor :show_card_sample
end
end