从组件到存储的初始状态,服务器端呈现

时间:2016-08-08 15:53:36

标签: asp.net-mvc reactjs redux react-redux reactjs.net

应用程序A将数据发布到应用程序B,这将是应用程序B的初始状态。为此,我正在使用Reactjs.Net

应用程序B将从应用程序A接收初始数据作为发布数据。我需要在我的商店中将此发布数据设置为initialState。为此,我正在使用Reactjs.net。

我在控制器中读取帖子数据,将数据映射到我的对象并将其分配给viewbag以使其在我的视图中可用。

以下是我的观点。我从ViewBag中读取了InitialData并对其进行了分配,以便可以在我的React组件中访问它。

@Styles.Render("~/css")
@Scripts.Render("~/scripts")

@Html.React("InitialData", new { LoadData = ViewBag.InitialDataObject })

<script src="/react-15.0.1.js"></script>
<script src="/react-dom-15.0.1.js"></script>

<div class="container  pad-l-0px pad-r-0px">
    <div id="app"></div>
</div>

<script src="~/public/bundle.js"></script>

在React组件中,我可以获取数据。现在我如何将这些数据作为initialState传递给商店,最好的方法是什么?

var InitialData = React.createClass({   
    getInitialState: function () {
        return { InitialLoadData: this.props.LoadData };
    },
    render: function() {
        return (
          <div></div>
     );
    }
});

我将仅使用服务器端呈现来设置初始状态。我知道我可以在我的视图中将数据分配给全局变量,并直接访问我的reducer中的变量。但我想避免这样做。

1 个答案:

答案 0 :(得分:1)

如果您使用Redux,则不提供组件的初始商店数据,但是您将其作为createStore的参数提供。

您通常会将初始状态分配给服务器端输出中的脚本变量,并在初始化商店时使用该变量。

有关详细示例,请参阅此页面: http://redux.js.org/docs/recipes/ServerRendering.html