gpt4 book ai didi

javascript - 这段 ES6 代码做了什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:32:10 26 4
gpt4 key购买 nike

我正在查看源代码附带的 redux todomvc 示例,其中有一些我以前从未见过的 JavaScript 符号。我熟悉 ES6 export 语法,但不明白这段代码末尾的 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;

关于javascript - 这段 ES6 代码做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36561613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com