如何在直接点击内部URL时传递组件的道具?

时间:2017-03-17 07:39:39

标签: node.js reactjs react-router serverside-rendering

我正在进行服务器端渲染,当我点击root url它工作正常(localhost:8000 /),甚至点击主页上的任何链接(localhost:8000 / black)也可以渲染组件,但是当我直接点击时直接“localhost:8000 / black”,关于如何在服务器上传递适当的黑色道具我是空白的,这样我就可以从服务器获得完整的html页面。 下面是server.js上的render函数代码。

  render(path, data={}) {
    match({ routes, location: path }, (error, redirectLocation, renderProps) => {
      if (error) {
        this.res.status(500).send(error.message)
      } else if (redirectLocation) {
        this.res.redirect(302, redirectLocation.pathname + redirectLocation.search)
      } else if (renderProps) {
        const appElement = (
            <RouterContext
                {...renderProps}
                createElement={(Component, props) =>
                  <Component data={data} {...props} />
                }
            />
        );
        this.res.status(200).send(renderToString(appElement))
      } else {
        this.res.status(404).send('Not found')
      }
    })
  }

0 个答案:

没有答案