2

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

应用程序 B 将从应用程序 A 接收初始数据作为发布数据。我需要在我的商店中将此发布数据设置为初始状态。为此,我正在使用 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>
     );
    }
});

我将只使用服务器端渲染来设置初始状态。我知道我可以在我的视图中将数据分配给一个全局变量,并在我的减速器中直接访问该变量。但我想避免这样做。

4

1 回答 1

2

如果您使用 Redux,则不提供来自组件的初始存储数据,而是将其作为createStore.

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

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

于 2016-08-08T18:37:18.523 回答