在 Redux 连接中使用 React forwardRef

mav*_*ick 12 reactjs redux react-hooks

我有一个forwardRef像这样使用的 React 功能组件:

const wrapper = React.forwardRef((props, ref) => (
  <MyComponent {...props} innerRef={ref} />
));

export default wrapper;
Run Code Online (Sandbox Code Playgroud)

现在我想使用mapStateToPropsRedux 的connect函数将一些状态传递给这个组件,如下所示:

export default connect(mapStateToProps, null)(MyComponent);
Run Code Online (Sandbox Code Playgroud)

我尝试以下列方式将它们组合起来,但没有奏效:

const wrapper = React.forwardRef((props, ref) => (
  <MyComponent {...props} innerRef={ref} />
));

export default connect(mapStateToProps, null)(wrapper);
Run Code Online (Sandbox Code Playgroud)

如何将这两者结合起来以获得所需的行为?

Ami*_*han 13

您可以在连接功能中使用选项

connect(mapStateToProps, null, null, { forwardRef: true })(wrapper)
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了“导出默认连接(mapStateToProps,null,null,{forwardRef:true})(MyComponent)”,但它不起作用。问题是它找不到 `innerRef` 属性。如何使用“connect”传递道具? (2认同)
  • 如果有人使用react-redux版本&lt;= v6.0,他们应该使用withRef代替forwardRef。 (2认同)