rsnext/errors/invalid-getstaticpaths-value.md
JJ Kasper c9d9f1131c
Remove unstable_ prefix from new methods (#10723)
* Rename getServerProps to getServerSideProps

* Remove unstable_ prefix from new methods

* Add error when legacy methods are detected

* Add legacy methods for babel transform

* Add unstable_getServerSideProps also

* Apply suggestions from code review

Co-Authored-By: Joe Haddad <joe.haddad@zeit.co>

* Update types import

Co-authored-by: Joe Haddad <timer150@gmail.com>
2020-02-27 11:57:39 -06:00

2.1 KiB

Invalid getStaticPaths Return Value

Why This Error Occurred

In one of the page's getStaticPaths the return value had the incorrect shape.

Possible Ways to Fix It

Make sure to return the following shape from getStaticPaths:

export async function getStaticPaths() {
  return {
    paths: Array<string | { params: { [key: string]: string } }>,
    fallback: boolean
  }
}

There are two required properties:

  1. paths: this property is an Array of URLs ("paths") that should be statically generated at build-time. The returned paths must match the dynamic route shape.
    • You may return a String or an Object that explicitly defines all URL params.
      // pages/blog/[slug].js
      export async function getStaticPaths() {
        return {
          paths: [
            // String variant:
            '/blog/first-post',
            // Object variant:
            { params: { slug: 'second-post' } },
          ],
          fallback: true,
        }
      }
      
  2. fallback: this property is a Boolean, specifying whether or not a fallback version of this page should be generated.
    • Enabling fallback (via true) allows you to return a subset of all the possible paths that should be statically generated. At runtime, Next.js will statically generate the remaining paths the first time they are requested. Consecutive calls to the path will be served as-if it was statically generated at build-time. This reduces build times when dealing with thousands or millions of pages.
    • Disabling fallback (via false) requires you return the full collection of paths you would like to statically generate at build-time. At runtime, any path that was not generated at build-time will 404.