为什么要为redux connect创建一个新的Component类?

时间:2017-07-10 16:36:19

标签: reactjs redux react-redux

参考这种编码模式:

import React, { Component } from 'react';
import { connect } from 'react-redux';
import Thing from '../components/Thing';

class ThingContainer extends Component {
  render() {
    return <Thing {...this.props} />;
  }
}

function mapStateToProps(state) {
  ...
}

export default connect(mapStateToProps)(ThingContainer);

所以它1)导入一个组件(Thing),2)创建另一个组件(技术上不是容器的ThingContainer)类来呈现第一个组件,最后使用connect来最终导出容器。

跳过上面的步骤2有什么不同,只是直接使用导入的组件(Thing)来导出容器?

1 个答案:

答案 0 :(得分:3)

是的,该文件看起来有点不必要。 class ThingContainer组件只会向<Thing>转发道具,这正是connect生成的包装器组件所做的。所以,这没用 - 文件只应该export default connect(mapState)(Thing),如果没有额外的ThingContainer定义,它将完全相同。