哪些道具是由`react-redux`的`connect()`注入的?

时间:2019-04-09 06:41:47

标签: redux react-redux documentation

react-redux的{​​{3}}似乎没有提供connect()注入的道具的完整列表。

  

connect()的返回是一个包装函数,可将您的   组件,并返回包装器组件及其附加道具   注入。

mapDispatchToPropsmapStateToProps添加的道具旁边还有哪些其他道具。例如,dispatch道具已注入所有组件,但未在文档中指定。

还有其他诸如dispatch之类的道具被注入吗?这种行为在将来的版本中会稳定吗?

如果注入了dispatch。我也希望注入getState

1 个答案:

答案 0 :(得分:0)

connect()不带道具的包装器函数只是注入而已,不监听存储。

export default connect()(YourComponent)

对代码https://github.com/reduxjs/react-redux/tree/master/src/connect进行一些研究,您会在两个文件/函数中找到答案:

https://github.com/reduxjs/react-redux/blob/master/src/connect/mapDispatchToProps.js

export function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {
  return !mapDispatchToProps
    ? wrapMapToPropsConstant(dispatch => ({ dispatch })) // ***** inject dispatch
    : undefined
}

https://github.com/reduxjs/react-redux/blob/master/src/connect/mapStateToProps.js

export function whenMapStateToPropsIsMissing(mapStateToProps) {
  return !mapStateToProps
    ? wrapMapToPropsConstant(() => ({})) // ***** empty object
    : undefined
}