Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';s redux函数的名称(类型)';connect(mapStateToProps)(ConnectedList)和#x27;_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 什么';s redux函数的名称(类型)';connect(mapStateToProps)(ConnectedList)和#x27;

Javascript 什么';s redux函数的名称(类型)';connect(mapStateToProps)(ConnectedList)和#x27;,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在学习redux技术,我一直在理解函数connect,因为我以前看到的函数都带有参数等等。。。这一个不需要任何东西至少看起来是这样的 (代码工作得很好,我就是不明白函数的意思) 从“React”导入React 从“react redux”导入{connect} 常量mapStateToProps=状态=>{ 返回{root:state.root} } const ConnectedList=root=>{ console.log(根目录) 返回( {root.root.articles.m

我正在学习redux技术,我一直在理解函数connect,因为我以前看到的函数都带有参数等等。。。这一个不需要任何东西至少看起来是这样的 (代码工作得很好,我就是不明白函数的意思)

从“React”导入React
从“react redux”导入{connect}
常量mapStateToProps=状态=>{
返回{root:state.root}
}
const ConnectedList=root=>{
console.log(根目录)
返回(
    {root.root.articles.map(el=>{ 返回(
  • {el.title}
  • ) })}
) } const List=connect(mapStateToProps)(ConnectedList) 导出默认列表
它使用您的
MapStateTrops
函数,就像您所说的那样——它怎么不使用任何参数呢?你通过了一次考试

它还需要其他参数:

  • mapDispatchToProps
  • mergeProps
  • 选项
(如文档中所详细说明的,其中也列出了类型,如果这是您真正想要的,但由于它没有标记TypeScript,并且代码中没有TypeScript,因此不完全清楚您来自何处。)

connect
(在本例中)接受一个参数,即一个函数,该函数将Redux状态映射到组件的属性

connect
然后返回一个函数,您可以使用组件
ConnectedList
调用该函数

这被称为a,它只不过是一个组件(或类似组件的功能),它用代码包装您的组件,然后呈现您的组件

在这种情况下,HOC采用您在
mapstatetrops
函数中指定的Redux状态,并将该状态(作为道具)发送到您的组件,然后进行渲染

图中显示了这是如何工作的,尽管我怀疑在这一点上会有点不透明,直到您更熟悉JS并做出反应


或者用更相关的术语:

const customConnect = aMappingFn => aComponent => aMappingFn(aComponent)

const yourMapper    = fn => { console.log(1); fn() }
const yourComponent = () => console.log(2)

customConnect(yourMapper)(yourComponent)

它使用您的
MapStateTops
函数,就像您所说的那样——它怎么不使用任何参数呢?你通过了一次考试

它还需要其他参数:

  • mapDispatchToProps
  • mergeProps
  • 选项
(如文档中所详细说明的,其中也列出了类型,如果这是您真正想要的,但由于它没有标记TypeScript,并且代码中没有TypeScript,因此不完全清楚您来自何处。)

connect
(在本例中)接受一个参数,即一个函数,该函数将Redux状态映射到组件的属性

connect
然后返回一个函数,您可以使用组件
ConnectedList
调用该函数

这被称为a,它只不过是一个组件(或类似组件的功能),它用代码包装您的组件,然后呈现您的组件

在这种情况下,HOC采用您在
mapstatetrops
函数中指定的Redux状态,并将该状态(作为道具)发送到您的组件,然后进行渲染

图中显示了这是如何工作的,尽管我怀疑在这一点上会有点不透明,直到您更熟悉JS并做出反应


或者用更相关的术语:

const customConnect = aMappingFn => aComponent => aMappingFn(aComponent)

const yourMapper    = fn => { console.log(1); fn() }
const yourComponent = () => console.log(2)

customConnect(yourMapper)(yourComponent)
connect()
函数将React组件连接到Redux存储

它不会修改传递给它的组件类。相反,它返回一个新的、连接的组件类,该类封装了传入的组件

定义


连接
功能自动从
存储
获取数据,并将其作为
道具
传递到
连接的组件
。当
存储
中的数据更改时,传递的
道具
将更改,组件将自动
重新呈现
。酷

为了使用容器中的存储,您需要做两件事:

首先:使用
MapStateTrops()
。顾名思义,它将状态变量从存储映射到指定的道具

其次:您需要将这些道具连接到您的容器。这就是图中出现的
connect()
MapStateTops
组件返回的对象已连接到容器

您可以像这样从
react redux
导入connect

从'react redux'导入{connect}

您可以找到详细的文档

代码示例

import React from 'react';
import { connect } from 'react-redux';

class App extends React.Component {
  render() {
    return <div>{this.props.store_data}</div>;
  }
}

function mapStateToProps(state) {
  return { store_data: state.appData };
}

export default connect(mapStateToProps)(App);
从“React”导入React;
从'react redux'导入{connect};
类应用程序扩展了React.Component{
render(){
返回{this.props.store_data};
}
}
函数MapStateTops(状态){
返回{store_data:state.appData};
}
导出默认连接(MapStateTops)(应用程序);
函数将React组件连接到Redux存储

它不会修改传递给它的组件类。相反,它返回一个新的、连接的组件类,该类封装了传入的组件

定义


连接
功能自动从
存储
获取数据,并将其作为
道具
传递到
连接的组件
。当
存储
中的数据更改时,传递的
道具
将更改,组件将自动
重新呈现
。酷

为了使用容器中的存储,您需要做两件事:

首先:使用
MapStateTrops()
。顾名思义,它映射了状态变量
import React from 'react';
import { connect } from 'react-redux';

class App extends React.Component {
  render() {
    return <div>{this.props.store_data}</div>;
  }
}

function mapStateToProps(state) {
  return { store_data: state.appData };
}

export default connect(mapStateToProps)(App);