【发布时间】:2018-01-10 13:50:02
【问题描述】:
我在这里阅读文档https://github.com/reactjs/react-redux/blob/master/docs/api.md
我想尽可能多地使用无状态组件,但我不知道如何处理初始数据负载。使用 Stateful React 组件,我的容器和组件看起来会是:
// Container
const mapDispatchToProps = (dispatch) {
return {
fetchData: () => dispatch(fetchDataAction());
}
}
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);
// Component
class MyComponent extends React.Component {
componentDidMount() {
this.props.fetchData();
}
}
如果我让我的组件无状态,componentDidMount 的逻辑会去哪里?
我看过一些例子,他们建议你在容器中使用有状态的 React 扩展你的无状态组件,并在那里添加该逻辑:
// Container
class MyComponentContainer extends MyComponent {
componentDidMount() {
this.props.fetchData();
}
}
export default connect(mapStateToProps, mapDispatchToProps)(MyComponentContainer);
但这是最好的方法吗?如果我很想创建一个有状态的 React,为什么不直接在 MyComponent 上做呢?
编辑只是为了清楚;我在问我是否可以基本上加载我的初始数据而无需在任何地方创建React.Component。
【问题讨论】:
-
为什么不对容器组件的componentDidMount调用fetchData?
标签: javascript reactjs redux react-redux