如何重置PINIA状态的数据之一?
我在设置页面上有一个设计,每个人都会使用HAVA重置按钮,现在我使用Pinia为Store库。 我kown $ reset
是重置整个PINIA状态,那么,如何重置Pinia状态的数据之一?
I have a design in setting page,every one of them hava reset button, now i using pinia to be store library.
I kown $reset
is reset the whole pinia state,so,how to reset one of data in pinia state?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我这样做的典型方法是:
您获得初始状态和
reset()
操作,该操作重置了最初的任何状态。显然,您可以选择DefaultState
中放入的内容。如果您只想重置一个特定的状态道具,而无需触摸任何其他状态,则只需将默认值分配给它:
如果您发现它有用,也可以具有通用
update
,您可以在其中分配多个在一个呼叫中陈述的值:使用:
最后但并非最不重要的一点,
lodash
'spick
可用于选择并选择重置的内容,从defaultState 值,而无需指定实际值:
使用以下内容:
仅重置
foo
'bar'
,但不触摸当前值boo
重置两个(使用上面的操作):
...或
usefoo()。reset()
或usefoo()。reset([])
,两个重置所有状态,因为键?长度
条件是假的。这是一个工作示例:
The typical way I do this:
You get the initial state and a
reset()
action which resets whatever state has to the initial. Obviously, you can pick and choose what you put indefaultState
.If you only want to reset one particular state prop, without touching anything else, just assign the default value to it:
If you find it useful, you can also have a generic
update
, where you can assign multiple values to state in one call:Use it like:
Last, but not least,
lodash
'spick
can be used to pick and choose what gets reset, from thedefaultState
values, without having to specify the actual values:use it like:
This only resets
foo
to'bar'
, but doesn't touch current value ofboo
.To reset both (using the action above):
...or
useFoo().reset()
oruseFoo().reset([])
, both of which reset all the state, because thekeys?.length
condition is falsey.Here's a working example:
上面的示例在属性已经更改时不会将一个属性重置为默认值。
那是因为DefaultState具有反应性,您需要复制DefaultState,以使其不再反应。
这样使用
它现在将重置
foo
返回bar
Above example doesn't reset one property to the default value when the property is already changed.
That's because the defaultState is reactive, you need to copy the defaultState so it's not reactive anymore.
Use it like this
This will now reset
foo
back tobar