Skip to content

Commit e0b1db4

Browse files
authored
fix: allow undefined to be resolved with <Await> (#11513)
1 parent 56969f2 commit e0b1db4

File tree

3 files changed

+36
-2
lines changed

3 files changed

+36
-2
lines changed

.changeset/heavy-lies-ring.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"react-router": patch
3+
---
4+
5+
allow undefined to be resolved with `<Await>`

packages/react-router/__tests__/data-memory-router-test.tsx

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3089,6 +3089,35 @@ describe("createMemoryRouter", () => {
30893089
`);
30903090
});
30913091

3092+
it("can render raw resolved to undefined promises with <Await>", async () => {
3093+
let dfd = createDeferred();
3094+
3095+
let { container } = render(
3096+
<React.Suspense fallback={<p>Loading...</p>}>
3097+
<Await resolve={dfd.promise}>{(data) => <p>{String(data)}</p>}</Await>
3098+
</React.Suspense>
3099+
);
3100+
3101+
console.log(getHtml(container));
3102+
expect(getHtml(container)).toMatchInlineSnapshot(`
3103+
"<div>
3104+
<p>
3105+
Loading...
3106+
</p>
3107+
</div>"
3108+
`);
3109+
3110+
dfd.resolve(undefined);
3111+
await waitFor(() => screen.getByText("undefined"));
3112+
expect(getHtml(container)).toMatchInlineSnapshot(`
3113+
"<div>
3114+
<p>
3115+
undefined
3116+
</p>
3117+
</div>"
3118+
`);
3119+
});
3120+
30923121
it("can render raw resolved promises with <Await>", async () => {
30933122
let dfd = createDeferred();
30943123

packages/react-router/lib/components.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -590,9 +590,9 @@ class AwaitErrorBoundary extends React.Component<
590590
// Already tracked promise - check contents
591591
promise = resolve;
592592
status =
593-
promise._error !== undefined
593+
"_error" in promise
594594
? AwaitRenderStatus.error
595-
: promise._data !== undefined
595+
: "_data" in promise
596596
? AwaitRenderStatus.success
597597
: AwaitRenderStatus.pending;
598598
} else {

0 commit comments

Comments
 (0)