Closed davidkpiano closed 5 months ago
This pull request is automatically built and testable in CodeSandbox.
To see build info of the built libraries, click here or the icon next to each commit SHA.
The problem is that by allowing inline actor logics you allow them to override the ones that are configured and that leads to problems:
const m = setup({
types: { children: { foo: 'myChild' } },
actors: {
myChild: fromPromise(async () => "")
}
}).createMachine({
entry: spawnChild(fromPromise(async () => 100), { id: 'foo' })
})
const actorRef = createActor(m)
const val = actorRef.getSnapshot().children.foo.getSnapshot().output // actual: number | undefined, expected: string | undefined
The problem is that by allowing inline actor logics you allow them to override the ones that are configured and that leads to problems:
const m = setup({ types: { children: { foo: 'myChild' } }, actors: { myChild: fromPromise(async () => "") } }).createMachine({ entry: spawnChild(fromPromise(async () => 100), { id: 'foo' }) }) const actorRef = createActor(m) const val = actorRef.getSnapshot().children.foo.getSnapshot().output // actual: number | undefined, expected: string | undefined
This really makes me think that the way that child actors are defined is a bit awkward currently. Would love to revisit this for v6
🦋 Changeset detected
Latest commit: 610b25eab4d36c18d10b358750921343f1c67be8
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 1 package
| Name | Type | | ------ | ----- | | xstate | Minor |Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR