xstate中的嵌套属性分配?
Posted
技术标签:
【中文标题】xstate中的嵌套属性分配?【英文标题】:Nested property assign in xstate? 【发布时间】:2020-03-15 14:36:40 【问题描述】:我知道您可以像这样使用assign
动作创建器:
const setFoo = assign(
foo: (context, event) => "someValueBasedOnContextAndEvent",
);
但是你可以这样用吗?
const setFoo = assign(
foo:
bar: (context, event) => "someValueBasedOnContextAndEvent",
);
当然,不会删除foo
的所有其他嵌套值。
【问题讨论】:
【参考方案1】:David Kourship(xstate 的创建者)answered Spectrum 上的这个:
不,你不能,但你可以创建一个自定义的分配函数来做到这一点。
所以我们基本上必须创建一个自定义化简器,它选择性地只更新嵌套对象中的一个字段。
【讨论】:
【参考方案2】:我想你可以试试这样的:
const setFoo = assign(
foo: (context, event) =>
...context,
foo:
...context.foo,
bar: "someValueBasedOnContextAndEvent"
,
);
您将用所需值替换 foo.bar
值,context
和 context.foo
的其余部分保持不变
【讨论】:
以上是关于xstate中的嵌套属性分配?的主要内容,如果未能解决你的问题,请参考以下文章