在类构造函数内初始化存储与在类声明之前进行初始化

时间:2018-09-28 19:52:08

标签: javascript react-redux mobx react-ssr

我将看到有关Redux,Mobx和其他类似库的许多示例:

const store = new Store();

class App extends Component {
  render() {
    return <Provider store={store}>
      { /* ... */ }
    </Provider>
  }
}

有什么理由不能/不应该这样做:

class App extends Component {
  constructor(props) {
    super(props);
    this.store = new Store();
  }

  render() {
    return <Provider store={this.store}>
      { /* ... */ }
    </Provider>
  }
}

我希望将初始数据从服务器传递到商店。我使用Rails和React-Rails,因此可以将initialData道具传递给App,然后执行以下操作:

constructor(props) {
  super(props);
  this.store = new Store(props.initialData);
}

但是我注意到在SSR示例中,初始数据设置在window上。这是否仅适用于已在React组件外部初始化的商店?

0 个答案:

没有答案