关于mapStatetoProps和mapDispatchtoProps的2个问题

来源:5-4 结合react-场景说明

jiliangmason

2017-05-16

import * as actionCreators from './actionCreators'import { bindActionCreators } from 'redux'

function mapStateToProps(state) {  return { todos: state.todos }}

function mapDispatchToProps(dispatch) {  return { actions: bindActionCreators(actionCreators, dispatch) }}

export default connect(mapStateToProps, mapDispatchToProps)(TodoApp)

  1.  mapStateToProps(state)这个函数的state是指的什么?它是存放在哪里的,以及如何能知道这个state发生了改变?

  2.  actions: bindActionCreators(actionCreators, dispatch)这一行代码中,下划线部分不用使用相同的名字么?


写回答

2回答

双越

2017-05-16

  1.  state 就是 redux 中当前存储的数据,存放在 JS 的内容中。你在对 redux 和 React 连接起来之后,redux中数据的变化,会自动同步到 React 中。

  2. 可以使用相同的名字,因为一个是变量,一个是对象属性,不冲突。不过为了代码可读性,建议不要用一个名字。

0
2
jiliangmason
再补充一问:在redux-with-react这个例子当中,Hello.jsx文件中的: function mapStateToProps(state) { return { userinfo: state.userinfo } } 这里的state是不是reducers下面index.jsx中: // 登录 case actionTypes.USERINFO_LOGIN: return action.data 返回的这个action.data?
2017-05-17
共2条回复

jiliangmason

提问者

2017-05-17

再补充一问:在redux-with-react这个例子当中,Hello.jsx文件中的:

function mapStateToProps(state) {
   return {
       userinfo: state.userinfo
   }
}

这里的state是不是reducers下面index.jsx中:

// 登录
case actionTypes.USERINFO_LOGIN:
   return action.data

返回的这个action.data?

0
1
双越
不是的,action.data 是当前数据修改时传递的数据,state 整个 Redux 存储数据的变量
2017-05-17
共1条回复

React高级实战 打造大众点评Web App

已经对React Router4与Webpack2进行了项目升级

1711 学习 · 707 问题

查看课程