需要代码解释Javascript将函数分配给常量
您好,我有以下基于React Redux的代码截取,不理解以下行:需要代码解释Javascript将函数分配给常量,javascript,react-redux,Javascript,React Redux,您好,我有以下基于React Redux的代码截取,不理解以下行: const List = connect(mapStateToProps)(ConnectedList); 我可以理解,如果一个函数看起来像: const List = connect(mapStateToProps); 但是,(ConnectedList)在这句话中有什么影响?它的技术名称是什么?发生了什么 全剪: import React from "react"; import { connect } from "r
const List = connect(mapStateToProps)(ConnectedList);
我可以理解,如果一个函数看起来像:
const List = connect(mapStateToProps);
但是,(ConnectedList)在这句话中有什么影响?它的技术名称是什么?发生了什么
全剪:
import React from "react";
import { connect } from "react-redux";
const mapStateToProps = state => {
return { articles: state.articles };
};
const ConnectedList = ({ articles }) => (
<ul className="list-group list-group-flush">
{articles.map(el => (
<li className="list-group-item" key={el.id}>
{el.title}
</li>
))}
</ul>
);
const List = connect(mapStateToProps)(ConnectedList);
export default List;
从“React”导入React;
从“react redux”导入{connect};
常量mapStateToProps=状态=>{
返回{articles:state.articles};
};
const ConnectedList=({articles})=>(
{articles.map(el=>(
-
{el.title}
))}
);
const List=connect(mapStateToProps)(ConnectedList);
导出默认列表;
connect(…)
返回一个函数(正如您已经意识到的),因此connect(…)(ConnectedList)
调用connect()
返回的函数,并将ConnectedList
作为其参数
更长的版本是:
const tmp = connect(mapStateToProps);
const List = tmp(ConnectedList);
由于您要求提供技术名称:通常,返回另一个函数的函数称为高阶函数。
connect(MapStateTrops)代码>
返回高阶反应组件(HOC)。在这种情况下,connect将在MapStateTopsPure函数上注入您正在映射的状态。
HOC的目的是组成另一个组件,这就是为什么需要第二部分:
connect(mapstatetops)(ConnectedList)代码>
connect()返回的HOC将向ConnectedList组件添加道具
您可以在此处看到文档:connect()
返回更高阶的组件(封装组件的组件)
此函数负责订阅应用程序redux存储中的更改,并且每当检测到存储中的更改时,它将调用您提供的MapStateTrops
函数,将新的存储状态传递给该函数。
然后,从mapStateToProps
返回的值将传递给正在包装为props
的组件
这将使组件连接到redux存储,并因此命名它
顺便说一句,我将您包装的组件命名为List
,从connect()
函数返回的组件命名为ConnectedList
本文可能很有用:Thx!这正是我想要的。