[英]What does this ES6 code do?
我正在查看源代碼附帶的redux todomvc示例,並且有一些我以前沒見過的JavaScript表示法。 我熟悉ES6 export
語法,但不了解此代碼段末尾的導出語句是做什么的。 為什么App類與connect函數的結果相結合?
import React, { Component, PropTypes } from 'react'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import Header from '../components/Header'
import MainSection from '../components/MainSection'
import * as TodoActions from '../actions'
class App extends Component {
render() {
const { todos, actions } = this.props
return (
<div>
<Header addTodo={actions.addTodo} />
<MainSection todos={todos} actions={actions} />
</div>
)
}
}
function mapStateToProps(state) {
return {
todos: state.todos
}
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(TodoActions, dispatch)
}
}
export default connect(
mapStateToProps,
mapDispatchToProps
)(App)
這是兩個鏈式函數調用。 調用connect(mapStateToProps, mapDispatchToProps)
,返回一個新的函數值。 使用單個參數App
調用第二個函數值。
使用中間變量可能有助於澄清發生了什么:
let connectRet = connect(mapStateToProps, mapDispatchToProps),
exportedVal = connectRet(App);
export default exportedVal;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.