使用随机生成的字符串在React进行服务器端渲染?

我正在我的React / Redux应用程序中第一次尝试服务器端渲染。我现在遇到的一个问题是,我需要初始状态具有一个随机生成的字符串,然后将其作为道具传递给我的主要App组件。显然,这会引起问题,因为它会为客户端和服务器生成不同的字符串。我有什么办法可以阻止此问题的发生?

帮助理解的基本结构:

App.js

import React from 'react';
import { connect } from 'react-redux';

const App = ({ randomStr }) => (
  <div> 
    <p>{randomStr}</p>
  </div>
);

const mapStateToProps = (state) => ({
  ...
});

const mapDispatchToProp = (dispatch) => ({
  ...
});

export default connect(
  mapStateToProps,
  mapDispatchToProps
)(App);

而我的减速器:

reducer.js

import { generateString } from '../util';
import { NEW_STRING } from '../constants';

const stringReducer = (state = generateString(), action) => {
  switch (action.type) {
    case NEW_STRING:
      return generateString();

    default:
      return state;
  }
};

export default stringReducer;

如您所见,我是randomStr从redux存储中获取并进行渲染的,但是在客户端和服务器中却有所不同。任何帮助,将不胜感激!

HiDeo

在服务器端生成存储和初始状态时,客户端不应这样做,并尝试重新生成数据。

您只需生成一次商店和您的初始状态(在服务器上),然后将其传递给客户端。为此,您需要将其注入要渲染的初始组件中。

最常见的方法是添加一个<script>标记并将状态附加到您的窗口,例如在中window.__initialState

例如,如果您在ReactDOM.renderToString服务器端使用渲染名为的初始组件Html,则可以:

const html = ReactDOM.renderToString(<Html initialState={initialState} />);

然后,Html您可以组件中注入此数据,以便客户端以后可以使用它:

<script dangerouslySetInnerHTML={{ __html: `window.__initialState=${JSON.stringify(this.props.initialState)};` }}/>

之后,在客户端,您可以window.__initialState用来取回数据,最终在服务器和客户端上获得相同的数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用随机生成的字符串在React进行服务器端渲染?

来自分类Dev

使用React,React-Router和Express进行服务器端渲染

来自分类Dev

使用.net渲染React JS服务器端

来自分类Dev

使用 Node/React 进行服务器端渲染。我如何获取数据?

来自分类Dev

服务器端生成的javascript数组抛出未终止的字符串文字

来自分类Dev

使用Jquery Ajax将html字符串传递到服务器端

来自分类Dev

Blazor(服务器端)TextArea使用长字符串失败

来自分类Dev

如何从服务器端的字符串中使用Elementree XML解析?

来自分类Dev

使用React进行服务器端渲染,浏览器是否仍需要在React中加载?

来自分类Dev

与使用纯React相比,使用Next.js进行服务器端渲染的潜在缺点是什么?

来自分类Dev

服务器端渲染以进行特定选择

来自分类Dev

使用WiFi Direct在客户端和服务器端发送和接收字符串

来自分类Dev

使用Ajax调用.net,C#获取客户端的服务器端字符串值

来自分类Dev

React / Redux服务器端渲染初始状态

来自分类Dev

React-Router无法在服务器端渲染

来自分类Dev

React Router / Hapi服务器端渲染错误

来自分类Dev

React-服务器端组件渲染

来自分类Dev

React JS服务器端渲染教程

来自分类Dev

React服务器端仅渲染特定路由

来自分类Dev

React-服务器端组件渲染

来自分类Dev

React服务器端渲染错误页面

来自分类Dev

使用Meteor和Meteorhacks:SSR和Iron-Router进行服务器端渲染

来自分类Dev

使用next.js与传统SSR进行服务器端渲染

来自分类Dev

在服务器端处理时,在搜索字符串中输入特殊字符

来自分类Dev

使用Meteor模拟服务器端渲染

来自分类Dev

如何使用Angular 2服务器端渲染

来自分类Dev

使用异步数据获取的服务器端渲染

来自分类Dev

在服务器端渲染时使用cookie的ReactJS

来自分类Dev

从React应用进行路由以获取从车把生成的服务器端呈现的HTML

Related 相关文章

  1. 1

    使用随机生成的字符串在React进行服务器端渲染?

  2. 2

    使用React,React-Router和Express进行服务器端渲染

  3. 3

    使用.net渲染React JS服务器端

  4. 4

    使用 Node/React 进行服务器端渲染。我如何获取数据?

  5. 5

    服务器端生成的javascript数组抛出未终止的字符串文字

  6. 6

    使用Jquery Ajax将html字符串传递到服务器端

  7. 7

    Blazor(服务器端)TextArea使用长字符串失败

  8. 8

    如何从服务器端的字符串中使用Elementree XML解析?

  9. 9

    使用React进行服务器端渲染,浏览器是否仍需要在React中加载?

  10. 10

    与使用纯React相比,使用Next.js进行服务器端渲染的潜在缺点是什么?

  11. 11

    服务器端渲染以进行特定选择

  12. 12

    使用WiFi Direct在客户端和服务器端发送和接收字符串

  13. 13

    使用Ajax调用.net,C#获取客户端的服务器端字符串值

  14. 14

    React / Redux服务器端渲染初始状态

  15. 15

    React-Router无法在服务器端渲染

  16. 16

    React Router / Hapi服务器端渲染错误

  17. 17

    React-服务器端组件渲染

  18. 18

    React JS服务器端渲染教程

  19. 19

    React服务器端仅渲染特定路由

  20. 20

    React-服务器端组件渲染

  21. 21

    React服务器端渲染错误页面

  22. 22

    使用Meteor和Meteorhacks:SSR和Iron-Router进行服务器端渲染

  23. 23

    使用next.js与传统SSR进行服务器端渲染

  24. 24

    在服务器端处理时,在搜索字符串中输入特殊字符

  25. 25

    使用Meteor模拟服务器端渲染

  26. 26

    如何使用Angular 2服务器端渲染

  27. 27

    使用异步数据获取的服务器端渲染

  28. 28

    在服务器端渲染时使用cookie的ReactJS

  29. 29

    从React应用进行路由以获取从车把生成的服务器端呈现的HTML

热门标签

归档