首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mapStateToProps对mapDispatchToProps

mapStateToProps对mapDispatchToProps
EN

Stack Overflow用户
提问于 2018-04-24 05:43:34
回答 3查看 38.9K关注 0票数 49

mapStateToPropsmapDispatchToProps参数在react redux中对connect函数有什么区别?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-24 05:48:05

mapStateToProps是一个函数,您可以使用它向组件提供存储数据,而mapDispatchToProps是用来为组件提供操作创建者的工具。

根据医生的说法:

如果指定了mapStateToProps参数,则新组件将订阅Redux更新。这意味着无论何时更新商店,都会调用mapStateToPropsmapStateToProps的结果必须是一个普通的对象,它将被合并到组件的支持中。 使用mapDispatchToProps,每个动作创建者都封装在一个分派调用中,以便可以直接调用它们,并将它们合并到组件的道具中。

一个简单的例子是

代码语言:javascript
复制
function mapStateToProps(state) {
  return { todos: state.todos }
}

function mapDispatchToProps(dispatch) {
  return { addTodo: bindActionCreators(addTodo, dispatch) }
}

export default connect(mapStateToProps, mapDispatchToProps)(Todos);
票数 91
EN

Stack Overflow用户

发布于 2018-04-24 05:46:46

用一个非常简单的术语,

mapStateToProps:将redux状态与反应组件的支柱连接起来。

mapDispatchToProps:将redux动作连接起来以响应道具。

一个非常简单的例子:(我希望,你知道我的意思)

代码语言:javascript
复制
// state
const mapStateToProps = state => {
  return { lists: state.lists };
};

// props
const mapDispatchToProps = ({ lists }) => (
  <ul>
    { 
      lists.map(el => (
        <li key={ el.id }>
          { el.heading }
        </li>
      )
    }
  </ul>
);

// Now, connect state to prop
const List = connect(mapStateToProps)(mapDispatchToProps);
票数 27
EN

Stack Overflow用户

发布于 2018-04-27 12:24:22

简单地说:

当您想从组件中获取全局状态的值时,将调用mapStateToProps

代码语言:javascript
复制
function mapStateToProps(state) {
  return {
    message: state.message

  };
}

全局状态的值只有在操作的帮助下才会改变。因此,如果您想要更改全局状态的值,则需要一个操作。mapDispatchToProps用于绑定组件中的操作。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49994197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档