2017-02-22 18 views
-1

Я получил компонент реакции, я хотел бы интегрировать редукцию в это. Поэтому у меня есть ссылка на официальный документ: http://redux.js.org/docs/basics/UsageWithReact.htmlТребуется ли React.createClass для интеграции React + Redux?

кажется, что это только позволит функция connect() только работа для React.createClass, это значит, что я не могу использовать его в React.Components? Благодарю.

ответ

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) 

Ссылка является компонентом.

Какая ошибка вы получаете?

+0

Я не знаю, как позволить 'HelloWorld' вызывать функцию в' mapDispatchToProps'. – DNB5brims

+0

@ DNB5brims Все в 'mapDispatchToProps' и' mapStateToProps' просто передается как реквизит. Я обновил пример –