Direct links to react-static sub pages can't find props for path





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I recently used aws-amplify to deploy a react-static to S3/Cloudfront. If I go to the root of the application (https://www.hauntingu.com), I can access every page just fine. However, if I navigate to a nested route directly (such as https://www.hauntingu.com/podcasts), I get blank page contents (the general layout renders), accompanied by the following error on my console:




RouteData or withRouteData couldn't find any props for path: podcasts/episode/16. You are either missing a route.getData function or you are relying on RouteData/withRouteData where you don't need to.



One oddity is that when I run the production build locally (yarn build; yarn serve), I can successfully navigate straight to sub pages. The only difference between the S3/Cloudfront build and my local "production" build is the siteRoot (shown below). When I test locally, I set siteRoot to http://localhost:3000, while the production build uses our real address.



Below is my static.config.json. I'm not really sure where to start troubleshooting since the problem only seems to occur after doing a production deployment. Does anyone have any ideas about what could be wrong?



import jdown from 'jdown'
import chokidar from 'chokidar'
import { reloadRoutes } from 'react-static/node'
import React, { Component } from 'react'
import { SheetsRegistry } from 'react-jss/lib/jss'
import JssProvider from 'react-jss/lib/JssProvider'
import { MuiThemeProvider, createMuiTheme, createGenerateClassName } from '@material-ui/core/styles'
import Podcast from 'podcast';
import fs from 'fs';
import theme from './src/theme'

chokidar.watch('content').on('all', () => reloadRoutes())

const pubDate = new Date();
const year = pubDate.getUTCFullYear();
const siteRoot = "https://www.hauntingu.com"
//const siteRoot = "http://localhost:3000"
const getSiteData = () => ({
title: 'Haunting U',
pubDate
})
const getPodcastData = () => ({
...getSiteData(),
description: "A podcast by home-haunters for home haunters. Let us help you take your home based haunted house to the next level.",
feedUrl: `${siteRoot}/feed.xml` ,
siteUrl: `${siteRoot}`,
imageUrl: `${siteRoot}/images/podcast-default.jpg`,
author: "John Schelt, Keoni Hutton & Leslie Reed",
copyright: `Copyright ${year} Rocky Mountain Home Haunters. All rights reserved.`,
categories: ["Games", "Hobbies:Hobbies"],
itunesAuthor: "",
itunesExplicit: false,
itunesSubtitle: "",
itunesSummary: `Do you love Halloween? Do you like to scare your trick-or-treaters? Have you been looking for a way to make your house more frightening? Then this is the podcast for you!

unting U is an educational and entertaining podcast for Halloween enthusiasts everywhere. We will explore all aspects of designing, building and running your own haunted attraction right from your own home.

in us every episode as we explore a topic in depth and answer questions from our listeners.`,
itunesOwner: {
name: "John Schelt, Keoni Hutton & Leslie Reed",
email: "dktpmn@gmail.com"
},
itunesCategories: [{text: "Games"}, {text: "Hobbies", subcats: ["Hobbies"]}],
itunesType: 'episodic',
itunesImage: `${siteRoot}/images/podcast-default.jpg`

})
export default {
siteRoot,
getSiteData,
getRoutes: async () => {
const { about, articles, episodes, highlights, hosts } = await jdown('content', {parseMd: false})
//Always sort in reverse order by slug. Slug must be numeric
episodes.sort((a,b) => b.slug - a.slug)
hosts.sort((a,b) => a.order - b.order)

const feed = new Podcast(getSiteData())
for (const item of episodes) {
feed.addItem({
title: item.title,
date: item.date,
link: `${siteRoot}/podcasts/episode/${item.slug}`,
enclosure: {
url: `${siteRoot}/${item.file}`
},
itunesDuration: item.duration,
itunesExplicit: false,
itunesEpisode: item.slug,
})
}
fs.writeFileSync('./public/feed.xml', feed.buildXml())

return [
{
path: '/',
component: 'src/containers/Home',
getData: () => ({
episodes,
highlights
}),
},
{
path: '/about',
component: 'src/containers/Hosts',
getData: () => ({
hosts,
about
}),
},
{
path: '/podcasts',
component: 'src/containers/Podcasts',
getData: () => ({
episodes,
hosts
}),
children: episodes.map(episode => ({
path: `/episode/${episode.slug}`,
component: 'src/containers/Episode',
getData: () => ({
episode,
hosts
})
}))
},
{
path: '/articles',
component: 'src/containers/Articles',
getData: () => ({
articles,
hosts
}),
children: articles.map(article => ({
path: `/article/${article.slug}`,
component: 'src/containers/Page',
getData: () => ({
content: article,
hosts
})
}))
},
{
is404: true,
component: 'src/containers/404',
},
]
},
renderToHtml: (render, Comp, meta) => {
// Create a sheetsRegistry instance.
const sheetsRegistry = new SheetsRegistry()

// Create a MUI theme instance.
const muiTheme = createMuiTheme(theme)

const generateClassName = createGenerateClassName()

const html = render(
<JssProvider registry={sheetsRegistry} generateClassName={generateClassName}>
<MuiThemeProvider theme={muiTheme} sheetsManager={new Map()}>
<Comp />
</MuiThemeProvider>
</JssProvider>
)

meta.jssStyles = sheetsRegistry.toString()

return html
},
Document: class CustomHtml extends Component {
render () {
const {
Html, Head, Body, children, renderMeta,
} = this.props

return (
<Html>
<Head>
<meta charSet="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
href="https://fonts.googleapis.com/css?family=Roboto:300,400,500"
rel="stylesheet"
/>
</Head>
<Body>
{children}
<style id="jss-server-side">{renderMeta.jssStyles}</style>
</Body>
</Html>
)
}
},
}









share|improve this question





























    0















    I recently used aws-amplify to deploy a react-static to S3/Cloudfront. If I go to the root of the application (https://www.hauntingu.com), I can access every page just fine. However, if I navigate to a nested route directly (such as https://www.hauntingu.com/podcasts), I get blank page contents (the general layout renders), accompanied by the following error on my console:




    RouteData or withRouteData couldn't find any props for path: podcasts/episode/16. You are either missing a route.getData function or you are relying on RouteData/withRouteData where you don't need to.



    One oddity is that when I run the production build locally (yarn build; yarn serve), I can successfully navigate straight to sub pages. The only difference between the S3/Cloudfront build and my local "production" build is the siteRoot (shown below). When I test locally, I set siteRoot to http://localhost:3000, while the production build uses our real address.



    Below is my static.config.json. I'm not really sure where to start troubleshooting since the problem only seems to occur after doing a production deployment. Does anyone have any ideas about what could be wrong?



    import jdown from 'jdown'
    import chokidar from 'chokidar'
    import { reloadRoutes } from 'react-static/node'
    import React, { Component } from 'react'
    import { SheetsRegistry } from 'react-jss/lib/jss'
    import JssProvider from 'react-jss/lib/JssProvider'
    import { MuiThemeProvider, createMuiTheme, createGenerateClassName } from '@material-ui/core/styles'
    import Podcast from 'podcast';
    import fs from 'fs';
    import theme from './src/theme'

    chokidar.watch('content').on('all', () => reloadRoutes())

    const pubDate = new Date();
    const year = pubDate.getUTCFullYear();
    const siteRoot = "https://www.hauntingu.com"
    //const siteRoot = "http://localhost:3000"
    const getSiteData = () => ({
    title: 'Haunting U',
    pubDate
    })
    const getPodcastData = () => ({
    ...getSiteData(),
    description: "A podcast by home-haunters for home haunters. Let us help you take your home based haunted house to the next level.",
    feedUrl: `${siteRoot}/feed.xml` ,
    siteUrl: `${siteRoot}`,
    imageUrl: `${siteRoot}/images/podcast-default.jpg`,
    author: "John Schelt, Keoni Hutton & Leslie Reed",
    copyright: `Copyright ${year} Rocky Mountain Home Haunters. All rights reserved.`,
    categories: ["Games", "Hobbies:Hobbies"],
    itunesAuthor: "",
    itunesExplicit: false,
    itunesSubtitle: "",
    itunesSummary: `Do you love Halloween? Do you like to scare your trick-or-treaters? Have you been looking for a way to make your house more frightening? Then this is the podcast for you!

    unting U is an educational and entertaining podcast for Halloween enthusiasts everywhere. We will explore all aspects of designing, building and running your own haunted attraction right from your own home.

    in us every episode as we explore a topic in depth and answer questions from our listeners.`,
    itunesOwner: {
    name: "John Schelt, Keoni Hutton & Leslie Reed",
    email: "dktpmn@gmail.com"
    },
    itunesCategories: [{text: "Games"}, {text: "Hobbies", subcats: ["Hobbies"]}],
    itunesType: 'episodic',
    itunesImage: `${siteRoot}/images/podcast-default.jpg`

    })
    export default {
    siteRoot,
    getSiteData,
    getRoutes: async () => {
    const { about, articles, episodes, highlights, hosts } = await jdown('content', {parseMd: false})
    //Always sort in reverse order by slug. Slug must be numeric
    episodes.sort((a,b) => b.slug - a.slug)
    hosts.sort((a,b) => a.order - b.order)

    const feed = new Podcast(getSiteData())
    for (const item of episodes) {
    feed.addItem({
    title: item.title,
    date: item.date,
    link: `${siteRoot}/podcasts/episode/${item.slug}`,
    enclosure: {
    url: `${siteRoot}/${item.file}`
    },
    itunesDuration: item.duration,
    itunesExplicit: false,
    itunesEpisode: item.slug,
    })
    }
    fs.writeFileSync('./public/feed.xml', feed.buildXml())

    return [
    {
    path: '/',
    component: 'src/containers/Home',
    getData: () => ({
    episodes,
    highlights
    }),
    },
    {
    path: '/about',
    component: 'src/containers/Hosts',
    getData: () => ({
    hosts,
    about
    }),
    },
    {
    path: '/podcasts',
    component: 'src/containers/Podcasts',
    getData: () => ({
    episodes,
    hosts
    }),
    children: episodes.map(episode => ({
    path: `/episode/${episode.slug}`,
    component: 'src/containers/Episode',
    getData: () => ({
    episode,
    hosts
    })
    }))
    },
    {
    path: '/articles',
    component: 'src/containers/Articles',
    getData: () => ({
    articles,
    hosts
    }),
    children: articles.map(article => ({
    path: `/article/${article.slug}`,
    component: 'src/containers/Page',
    getData: () => ({
    content: article,
    hosts
    })
    }))
    },
    {
    is404: true,
    component: 'src/containers/404',
    },
    ]
    },
    renderToHtml: (render, Comp, meta) => {
    // Create a sheetsRegistry instance.
    const sheetsRegistry = new SheetsRegistry()

    // Create a MUI theme instance.
    const muiTheme = createMuiTheme(theme)

    const generateClassName = createGenerateClassName()

    const html = render(
    <JssProvider registry={sheetsRegistry} generateClassName={generateClassName}>
    <MuiThemeProvider theme={muiTheme} sheetsManager={new Map()}>
    <Comp />
    </MuiThemeProvider>
    </JssProvider>
    )

    meta.jssStyles = sheetsRegistry.toString()

    return html
    },
    Document: class CustomHtml extends Component {
    render () {
    const {
    Html, Head, Body, children, renderMeta,
    } = this.props

    return (
    <Html>
    <Head>
    <meta charSet="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link
    href="https://fonts.googleapis.com/css?family=Roboto:300,400,500"
    rel="stylesheet"
    />
    </Head>
    <Body>
    {children}
    <style id="jss-server-side">{renderMeta.jssStyles}</style>
    </Body>
    </Html>
    )
    }
    },
    }









    share|improve this question

























      0












      0








      0








      I recently used aws-amplify to deploy a react-static to S3/Cloudfront. If I go to the root of the application (https://www.hauntingu.com), I can access every page just fine. However, if I navigate to a nested route directly (such as https://www.hauntingu.com/podcasts), I get blank page contents (the general layout renders), accompanied by the following error on my console:




      RouteData or withRouteData couldn't find any props for path: podcasts/episode/16. You are either missing a route.getData function or you are relying on RouteData/withRouteData where you don't need to.



      One oddity is that when I run the production build locally (yarn build; yarn serve), I can successfully navigate straight to sub pages. The only difference between the S3/Cloudfront build and my local "production" build is the siteRoot (shown below). When I test locally, I set siteRoot to http://localhost:3000, while the production build uses our real address.



      Below is my static.config.json. I'm not really sure where to start troubleshooting since the problem only seems to occur after doing a production deployment. Does anyone have any ideas about what could be wrong?



      import jdown from 'jdown'
      import chokidar from 'chokidar'
      import { reloadRoutes } from 'react-static/node'
      import React, { Component } from 'react'
      import { SheetsRegistry } from 'react-jss/lib/jss'
      import JssProvider from 'react-jss/lib/JssProvider'
      import { MuiThemeProvider, createMuiTheme, createGenerateClassName } from '@material-ui/core/styles'
      import Podcast from 'podcast';
      import fs from 'fs';
      import theme from './src/theme'

      chokidar.watch('content').on('all', () => reloadRoutes())

      const pubDate = new Date();
      const year = pubDate.getUTCFullYear();
      const siteRoot = "https://www.hauntingu.com"
      //const siteRoot = "http://localhost:3000"
      const getSiteData = () => ({
      title: 'Haunting U',
      pubDate
      })
      const getPodcastData = () => ({
      ...getSiteData(),
      description: "A podcast by home-haunters for home haunters. Let us help you take your home based haunted house to the next level.",
      feedUrl: `${siteRoot}/feed.xml` ,
      siteUrl: `${siteRoot}`,
      imageUrl: `${siteRoot}/images/podcast-default.jpg`,
      author: "John Schelt, Keoni Hutton & Leslie Reed",
      copyright: `Copyright ${year} Rocky Mountain Home Haunters. All rights reserved.`,
      categories: ["Games", "Hobbies:Hobbies"],
      itunesAuthor: "",
      itunesExplicit: false,
      itunesSubtitle: "",
      itunesSummary: `Do you love Halloween? Do you like to scare your trick-or-treaters? Have you been looking for a way to make your house more frightening? Then this is the podcast for you!

      unting U is an educational and entertaining podcast for Halloween enthusiasts everywhere. We will explore all aspects of designing, building and running your own haunted attraction right from your own home.

      in us every episode as we explore a topic in depth and answer questions from our listeners.`,
      itunesOwner: {
      name: "John Schelt, Keoni Hutton & Leslie Reed",
      email: "dktpmn@gmail.com"
      },
      itunesCategories: [{text: "Games"}, {text: "Hobbies", subcats: ["Hobbies"]}],
      itunesType: 'episodic',
      itunesImage: `${siteRoot}/images/podcast-default.jpg`

      })
      export default {
      siteRoot,
      getSiteData,
      getRoutes: async () => {
      const { about, articles, episodes, highlights, hosts } = await jdown('content', {parseMd: false})
      //Always sort in reverse order by slug. Slug must be numeric
      episodes.sort((a,b) => b.slug - a.slug)
      hosts.sort((a,b) => a.order - b.order)

      const feed = new Podcast(getSiteData())
      for (const item of episodes) {
      feed.addItem({
      title: item.title,
      date: item.date,
      link: `${siteRoot}/podcasts/episode/${item.slug}`,
      enclosure: {
      url: `${siteRoot}/${item.file}`
      },
      itunesDuration: item.duration,
      itunesExplicit: false,
      itunesEpisode: item.slug,
      })
      }
      fs.writeFileSync('./public/feed.xml', feed.buildXml())

      return [
      {
      path: '/',
      component: 'src/containers/Home',
      getData: () => ({
      episodes,
      highlights
      }),
      },
      {
      path: '/about',
      component: 'src/containers/Hosts',
      getData: () => ({
      hosts,
      about
      }),
      },
      {
      path: '/podcasts',
      component: 'src/containers/Podcasts',
      getData: () => ({
      episodes,
      hosts
      }),
      children: episodes.map(episode => ({
      path: `/episode/${episode.slug}`,
      component: 'src/containers/Episode',
      getData: () => ({
      episode,
      hosts
      })
      }))
      },
      {
      path: '/articles',
      component: 'src/containers/Articles',
      getData: () => ({
      articles,
      hosts
      }),
      children: articles.map(article => ({
      path: `/article/${article.slug}`,
      component: 'src/containers/Page',
      getData: () => ({
      content: article,
      hosts
      })
      }))
      },
      {
      is404: true,
      component: 'src/containers/404',
      },
      ]
      },
      renderToHtml: (render, Comp, meta) => {
      // Create a sheetsRegistry instance.
      const sheetsRegistry = new SheetsRegistry()

      // Create a MUI theme instance.
      const muiTheme = createMuiTheme(theme)

      const generateClassName = createGenerateClassName()

      const html = render(
      <JssProvider registry={sheetsRegistry} generateClassName={generateClassName}>
      <MuiThemeProvider theme={muiTheme} sheetsManager={new Map()}>
      <Comp />
      </MuiThemeProvider>
      </JssProvider>
      )

      meta.jssStyles = sheetsRegistry.toString()

      return html
      },
      Document: class CustomHtml extends Component {
      render () {
      const {
      Html, Head, Body, children, renderMeta,
      } = this.props

      return (
      <Html>
      <Head>
      <meta charSet="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <link
      href="https://fonts.googleapis.com/css?family=Roboto:300,400,500"
      rel="stylesheet"
      />
      </Head>
      <Body>
      {children}
      <style id="jss-server-side">{renderMeta.jssStyles}</style>
      </Body>
      </Html>
      )
      }
      },
      }









      share|improve this question














      I recently used aws-amplify to deploy a react-static to S3/Cloudfront. If I go to the root of the application (https://www.hauntingu.com), I can access every page just fine. However, if I navigate to a nested route directly (such as https://www.hauntingu.com/podcasts), I get blank page contents (the general layout renders), accompanied by the following error on my console:




      RouteData or withRouteData couldn't find any props for path: podcasts/episode/16. You are either missing a route.getData function or you are relying on RouteData/withRouteData where you don't need to.



      One oddity is that when I run the production build locally (yarn build; yarn serve), I can successfully navigate straight to sub pages. The only difference between the S3/Cloudfront build and my local "production" build is the siteRoot (shown below). When I test locally, I set siteRoot to http://localhost:3000, while the production build uses our real address.



      Below is my static.config.json. I'm not really sure where to start troubleshooting since the problem only seems to occur after doing a production deployment. Does anyone have any ideas about what could be wrong?



      import jdown from 'jdown'
      import chokidar from 'chokidar'
      import { reloadRoutes } from 'react-static/node'
      import React, { Component } from 'react'
      import { SheetsRegistry } from 'react-jss/lib/jss'
      import JssProvider from 'react-jss/lib/JssProvider'
      import { MuiThemeProvider, createMuiTheme, createGenerateClassName } from '@material-ui/core/styles'
      import Podcast from 'podcast';
      import fs from 'fs';
      import theme from './src/theme'

      chokidar.watch('content').on('all', () => reloadRoutes())

      const pubDate = new Date();
      const year = pubDate.getUTCFullYear();
      const siteRoot = "https://www.hauntingu.com"
      //const siteRoot = "http://localhost:3000"
      const getSiteData = () => ({
      title: 'Haunting U',
      pubDate
      })
      const getPodcastData = () => ({
      ...getSiteData(),
      description: "A podcast by home-haunters for home haunters. Let us help you take your home based haunted house to the next level.",
      feedUrl: `${siteRoot}/feed.xml` ,
      siteUrl: `${siteRoot}`,
      imageUrl: `${siteRoot}/images/podcast-default.jpg`,
      author: "John Schelt, Keoni Hutton & Leslie Reed",
      copyright: `Copyright ${year} Rocky Mountain Home Haunters. All rights reserved.`,
      categories: ["Games", "Hobbies:Hobbies"],
      itunesAuthor: "",
      itunesExplicit: false,
      itunesSubtitle: "",
      itunesSummary: `Do you love Halloween? Do you like to scare your trick-or-treaters? Have you been looking for a way to make your house more frightening? Then this is the podcast for you!

      unting U is an educational and entertaining podcast for Halloween enthusiasts everywhere. We will explore all aspects of designing, building and running your own haunted attraction right from your own home.

      in us every episode as we explore a topic in depth and answer questions from our listeners.`,
      itunesOwner: {
      name: "John Schelt, Keoni Hutton & Leslie Reed",
      email: "dktpmn@gmail.com"
      },
      itunesCategories: [{text: "Games"}, {text: "Hobbies", subcats: ["Hobbies"]}],
      itunesType: 'episodic',
      itunesImage: `${siteRoot}/images/podcast-default.jpg`

      })
      export default {
      siteRoot,
      getSiteData,
      getRoutes: async () => {
      const { about, articles, episodes, highlights, hosts } = await jdown('content', {parseMd: false})
      //Always sort in reverse order by slug. Slug must be numeric
      episodes.sort((a,b) => b.slug - a.slug)
      hosts.sort((a,b) => a.order - b.order)

      const feed = new Podcast(getSiteData())
      for (const item of episodes) {
      feed.addItem({
      title: item.title,
      date: item.date,
      link: `${siteRoot}/podcasts/episode/${item.slug}`,
      enclosure: {
      url: `${siteRoot}/${item.file}`
      },
      itunesDuration: item.duration,
      itunesExplicit: false,
      itunesEpisode: item.slug,
      })
      }
      fs.writeFileSync('./public/feed.xml', feed.buildXml())

      return [
      {
      path: '/',
      component: 'src/containers/Home',
      getData: () => ({
      episodes,
      highlights
      }),
      },
      {
      path: '/about',
      component: 'src/containers/Hosts',
      getData: () => ({
      hosts,
      about
      }),
      },
      {
      path: '/podcasts',
      component: 'src/containers/Podcasts',
      getData: () => ({
      episodes,
      hosts
      }),
      children: episodes.map(episode => ({
      path: `/episode/${episode.slug}`,
      component: 'src/containers/Episode',
      getData: () => ({
      episode,
      hosts
      })
      }))
      },
      {
      path: '/articles',
      component: 'src/containers/Articles',
      getData: () => ({
      articles,
      hosts
      }),
      children: articles.map(article => ({
      path: `/article/${article.slug}`,
      component: 'src/containers/Page',
      getData: () => ({
      content: article,
      hosts
      })
      }))
      },
      {
      is404: true,
      component: 'src/containers/404',
      },
      ]
      },
      renderToHtml: (render, Comp, meta) => {
      // Create a sheetsRegistry instance.
      const sheetsRegistry = new SheetsRegistry()

      // Create a MUI theme instance.
      const muiTheme = createMuiTheme(theme)

      const generateClassName = createGenerateClassName()

      const html = render(
      <JssProvider registry={sheetsRegistry} generateClassName={generateClassName}>
      <MuiThemeProvider theme={muiTheme} sheetsManager={new Map()}>
      <Comp />
      </MuiThemeProvider>
      </JssProvider>
      )

      meta.jssStyles = sheetsRegistry.toString()

      return html
      },
      Document: class CustomHtml extends Component {
      render () {
      const {
      Html, Head, Body, children, renderMeta,
      } = this.props

      return (
      <Html>
      <Head>
      <meta charSet="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1" />
      <link
      href="https://fonts.googleapis.com/css?family=Roboto:300,400,500"
      rel="stylesheet"
      />
      </Head>
      <Body>
      {children}
      <style id="jss-server-side">{renderMeta.jssStyles}</style>
      </Body>
      </Html>
      )
      }
      },
      }






      amazon-cloudfront aws-amplify react-static






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 23 '18 at 14:42









      rfestagrfestag

      3668




      3668
























          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448729%2fdirect-links-to-react-static-sub-pages-cant-find-props-for-path%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53448729%2fdirect-links-to-react-static-sub-pages-cant-find-props-for-path%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          這個網誌中的熱門文章

          Hercules Kyvelos

          Tangent Lines Diagram Along Smooth Curve

          Yusuf al-Mu'taman ibn Hud