react-redux中connect接收参数的问题

clipboard.png
从reducer中接收一个不同于第一个datalist中的那个参数,应该如何修改呢。
datalist是从一个子组件传过来的状态,而myData又是另一个子组件传过来的。而reducer返回的都是同一个参数,那怎么操作呢?

阅读 6.3k
5 个回答

我很好奇你们的react是哪里学的,怎么写出这么不规范的代码出来。

//A B分别是不同的组件修改state产生的
const mapStateToProps = (state) => {
  return {
    dataList: state.A.dataList,
    myData: state.B.myData
  }
}

export default connect(mapStateToProps, null)(App)

然后,你的意思,是想修改myData还是???
若是的话:
在当前所属A组件的action.js中

//A action.js
//把B组件的action的修改myData的方法引入到A组件的action
import { updateMyData } from './B/action'

//绑定到actionCreators 使得A组件获得修改B组件的action 那么就可以在A组件里,发起修改B组件的state里的方法
export const containerActions = dispatch => bindActionCreators({
  //... 
  updateMyData
}, dispatch)

// 更新状态 state

const mapStateToProps = (state) => ({
dataList: state.A.dataList,
myData: state.B.myData
})

// 更新方法
const mapDispatchToProps = (dispatch) => ({
dataList: () => dispatch(app.dataList()),
myData: () => dispatch(app.myData()),
})

export default connect(mapStateToProps, mapDispatchToProps )(App)

export default connect(state => {
    return {
        ...state.[你导出的reducer的名字]
    }
})([模块])

代码规范很重要。

新手上路,请多包涵

阿卡基湖路C罗 out here on听过

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题