Coder Social home page Coder Social logo

Suspense Mode about swr HOT 3 CLOSED

vercel avatar vercel commented on May 14, 2024
Suspense Mode

from swr.

Comments (3)

icyJoseph avatar icyJoseph commented on May 14, 2024

Yes, I think the docs might be misleading when using the word fetch, as you are supposed to make your own handler, as oppose to pass window.fetch. The examples are very well done though. Maybe a PR is worth the effort?

As for the second part, it happens because there's a few other values coming out from the hook, and in this case the isValidating prop triggers this re-render (there's also the error prop and the revalidate function).

import React, { Suspense } from "react";
import useSWR from "swr";

export function useWordPromise(word) {
  const { data, ...rest } = useSWR(
    word,
    arg => {
      console.log("calls promise handler");
      return new Promise(resolve => resolve(arg));
    },
    {
      suspense: true
    }
  );

  console.log("calls hook", rest);
  return data;
}

function Word() {
  const word = useWordPromise("the word");
  return <p>{word}</p>;
}

function App() {
  return (
    <Suspense fallback={<p>Loading Word</p>}>
      <Word />
    </Suspense>
  );
}

When I run the above, I see three calls hook, the initial pass, when isValidating is true, and finally when isValidating becomes false (we got data), but only one calls promise handler. Remember too that this library does re-fetch on auto focus.

from swr.

shuding avatar shuding commented on May 14, 2024

Thank you! We'll make the documentation about fetch clearer.

The second question should be related to #57.

from swr.

shuding avatar shuding commented on May 14, 2024

Should be fixed in [email protected].

from swr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.