我正在使用 xState 应用程序机器,我发现自己需要按顺序做事。下面,当我执行 NAV_OK 时,我希望它首先运行“运行搜索”操作,然后在运行后,我希望它根据某些防护/条件自动聚焦于正确的元素。 它似乎正在选择它们反而。不幸的是,我无法将操作“run_search”移动到每个目标块中,因为我需要它在处理这些目标块之前运行。
NAV_OK: [
//run the search and return products/videos
{ actions: 'run_search' },
{
//if products exists focus on that swimlane
target: 'products',
cond: (ctx) => ctx.products > 0
},
{
//if videos exists focus on that swimlane
target: 'videos',
cond: (ctx) => ctx.videos > 0
}
],
newState: {
id: 'newState',
entry: 'run_search',
on: {
'': [
{
cond:(ctx) => ctx.products > 0,
target:'products',
},
{
cond:(ctx) => ctx.videos > 0,
target: 'videos',
},
{
target: 'idle'
}
]
}
}