当前位置: 首页 > 知识库问答 >
问题:

使用React服务器端渲染传递道具

宿文栋
2023-03-14

从节点(express)服务器端渲染时,我无法将初始道具传递到我的React组件

以下是我的组件的简短版本:

/* mycomponent.jsx */
import React, {PropTypes, Component} from 'react/addons'
import GoogleMap from 'google-map-react'
import Place from './place.jsx'

export default class EventsMapPage extends Component {

  static defaultProps = {
    center: [59.838043, 30.337157]
  }

  constructor (props) {
    super(props)
  }

  render () {
    const locations = this.props.locations
      .map(place => {
        const {id, ...coords} = place

        return (
          <Place
            key={id}
            {...coords}
            text={id}
          />
        )
      })

    return (
       <div className='map-canvas'>
         <GoogleMap
          center={this.props.center}
         >
          {locations}
        </GoogleMap>
      </div>
    )
  }
}

这是服务器端

/* app.js */
require('babel/register')({ stage: 0 })

var ejs = require('ejs')
var express = require('express')
var venues = require('./venues')
var React = require('react/addons')
var MyComponent = require('./src/js/components/mycomponent.jsx')

var Component = React.createFactory(MyComponent)

var app = express()

app.get('/locations/:id', function (req, res, next) {
  var loc = venues[req.params.id]

  return res.render('location', {
    react: React.renderToString(Component({locations: [loc]}))
  })
})


app.listen(process.env.port || 2000)

在render()方法中尝试使用组件时,locationsprop似乎没有传递给组件

有什么想法吗?

共有1个答案

缪嘉志
2023-03-14

您在“谷歌地图”组件中添加位置时出现错误。

{locatios}
 类似资料:
  • 问题内容: 我刚刚学会了最近的反应,打算将其用于下一个项目。我已经遇到过几次反应服务器端渲染,但是想知道为什么在“现代时代”我们仍然需要它。 在本文中,它认为通过服务器端渲染,用户不必等待从CDN或其他地方加载这些js即可看到初始静态页面,并且该页面将在js到达时恢复功能。 但是在使用webpack生产配置和gzip构建之后,整个捆绑包(包括react,我的代码和许多其他东西)仅占用40kb,而我

  • 问题内容: 我正在尝试为我的react应用设置服务器端渲染,并且试图使用出色的react-router模块来处理非js情况(某些爬虫,当用户关闭js时,原因)。但是,我遇到了麻烦。我一直在这里使用出色的响应作为各种指南,但我却遇到了奇怪的错误。尝试使用时,我会坚持不懈。我是否设置了服务器端渲染错误,缺少明显的东西或其他东西? 我的设置: 真正的基本Express服务器 顶级反应组件 输出: 问题答

  • info 如果您能了解下面这些技术,能加快您对本文的了解 vuex - Vue.js 应用程序开发的状态管理模式 Vue.js SSR - Vue.js 服务器端渲染 webpack - 编译构建工具 Lavas 服务器端渲染模板参考了 vue-hackernews 的渲染和开发机制,并且结合了 Lavas 的 App Shell 模板,导出的工程中会有 App Shell 等 如果您不了解 vu

  • React 提供了两个方法 renderToString 和 renderToStaticMarkup 用来将组件(Virtual DOM)输出成 HTML 字符串,这是 React 服务器端渲染的基础,它移除了服务器端对于浏览器环境的依赖,所以让服务器端渲染变成了一件有吸引力的事情。 服务器端渲染除了要解决对浏览器环境的依赖,还要解决两个问题: 前后端可以共享代码 前后端路由可以统一处理 Rea

  • 本文向大家介绍React服务端渲染(总结),包括了React服务端渲染(总结)的使用技巧和注意事项,需要的朋友参考一下 一、前言 为什么需要服务端渲染?什么情况下进行服务端渲染?笔者认为,当我们要求渲染时间尽量快、页面响应速度快时(优点),才会采用服务器渲染,并且应该“按需”对页面进行渲染 ——“首次加载/首屏”。即服务端渲染的优势在于:由中间层( node端 )为客户端请求初始数据、并由node

  • 如果你调研服务器端渲染(SSR)只是用来改善少数营销页面(例如/,/about,/contact等)的 SEO,那么你可能需要预渲染。无需使用 web 服务器实时动态编译 HTML,而是使用预渲染方式,在构建时(build time)简单地生成针对特定路由的静态 HTML 文件。优点是设置预渲染更简单,并可以将你的前端作为一个完全静态的站点。 如果你使用 webpack,你可以使用prerende