簡體   English   中英

這個ES6代碼有什么作用?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM