我们最近从 Angular 切换到 React + Flux 来构建一个相当复杂的业务应用程序。
采用一个容器组件将所有状态作为属性向下传递组件树的方法并不是为我们开发应用程序的实用方法,因为该应用程序使用了类似页面的大型模式。确实有足够的状态传递给模态,以便他们将数据加载到他们的存储中。
我遇到的问题是我需要将一些初始状态(作为道具传递)到模态组件的存储中。在这篇文章中,Facebook 的好人说,当同步不是目标时,可以使用道具作为初始状态。
这就是我目前将初始状态放入我的商店的方式:
var ABC = React.createClass({
...
getInitialState: function() {
return ABCStore.getInitialABCState(this.props.initialA);
},
...
var ABCStore = Reflux.createStore({
...
init: function() {
_state = {
a: null,
b: 'B init',
c: 'C init'
};
},
getInitialABCState: function(initialA) {
_state.a = initialA;
return _state;
},
getABCState: function() {
return _state;
}
...
我不确定这样做的最佳做法是什么,或者这是否是 Flux 反模式?