我试图将我的商店连接到实际的应用程序,以便提供数据并对状态更改做出反应。可悲的是,商店连接似乎有问题。
@connectToStores
class App extends Component {
static getStores() {
return [CategoryStore, UserStore, LocalizationStore];
}
static getPropsFromStores() {
return {
...CategoryStore.getState(),
...UserStore.getState(),
...LocalizationStore.getState()
};
}
static componentDidConnect(props, context) {
ca.fetchCategories();
la.fetchLocales();
}
运行项目时,componentDidConnect永远不会被使用。根据这个:https://github.com/altjs/connect-to-stores/issues/6该函数应该在连接商店后立即运行。 我让它部分地将动作放在componentWillMount中,但状态没有正确更新。所以我认为商店连接没有正确设置。
我也尝试过ES7 decorator / ES6正常实现。
我不知道为什么来自商店的数据没有正确分发。任何帮助都非常欢迎!
答案 0 :(得分:0)
我明白了。由于以下原因,道具没有传递给孩子的原因是:
我用它来初始化孩子:
const children = React.Children.map(this.props.children, (child) => {
return React.cloneElement(child, this.state);
});
传递状态而不是道具。因此用this.props替换this.state为我工作。