React + Redux集成是否仅需要React.createClass?

时间:2017-02-22 08:17:26

标签: javascript reactjs redux

我有一个反应组件,我想将redux与它集成。所以我参考了官方文件: http://redux.js.org/docs/basics/UsageWithReact.html

似乎它只允许connect()函数仅适用于React.createClass,这是否意味着我无法在React.Components中使用它?谢谢。

1 个答案:

答案 0 :(得分:4)

它的工作方式完全相同。您只需将组件传递给它:

const mapDispatchToProps = (dispatch) => {
  return {
    onClick: () => dispatch(someFunc)
  }
}
const HelloWorld = ({ onClick }) => <div onClick={onClick}>Hello World</div>;

connect(null, mapDispatchToProps)(HelloWorld);

在您提供的链接上有一个例子。

import { connect } from 'react-redux'
import { setVisibilityFilter } from '../actions'
import Link from '../components/Link'

const mapStateToProps = (state, ownProps) => {
  return {
    active: ownProps.filter === state.visibilityFilter
  }
}

const mapDispatchToProps = (dispatch, ownProps) => {
  return {
    onClick: () => {
      dispatch(setVisibilityFilter(ownProps.filter))
    }
  }
}

const FilterLink = connect(
  mapStateToProps,
  mapDispatchToProps
)(Link)

链接是一个组件。

你得到什么错误?