SolidJSS
SolidJSโ€ข3y agoโ€ข
3 replies
Delvis

ErrorBoundary explanation

Can someone explain why this first one works and other doesnt:

1.

import { createQuery } from "@tanstack/solid-query";
import { Suspense } from "solid-js";
import { ErrorBoundary } from "solid-start";

const Comp = () => {
  const state = createQuery(() => ({
    queryKey: ["key"],
    queryFn: async () => {
      if (true) {
        throw new Error("Suspense Error Bingo");
      } else {
        return "data";
      }
    },
    retry: false,
  }));

  return <p>{state.data}</p>;
};

function Test() {
  return (
    <ErrorBoundary
      fallback={() => (
        <div>
          <div>error boundary</div>
        </div>
      )}
    >
      <Suspense fallback="Loading...">
        <Comp />
      </Suspense>
    </ErrorBoundary>
  );
}

export default Test;


2.

import { createQuery } from "@tanstack/solid-query";
import { Suspense } from "solid-js";
import { ErrorBoundary } from "solid-start";




function Test() {
  const state = createQuery(() => ({
    queryKey: ["key"],
    queryFn: async () => {
      if (true) {
        throw new Error("Suspense Error Bingo");
      } else {
        return "data";
      }
    },
    retry: false,
  }));

  return (
    <ErrorBoundary
      fallback={() => (
        <div>
          <div>error boundary</div>
        </div>
      )}
    >
      <Suspense fallback="Loading..."><p>{state.data}</p></Suspense>
    </ErrorBoundary>
  );
}

export default Test;
Was this page helpful?