实现一个HOC高阶组件将redux的state和dispatch注入到类组件的props里
时间: 2024-05-14 18:15:05 浏览: 75
下面是一个实现将redux的state和dispatch注入到类组件的props里的HOC高阶组件的示例代码:
```javascript
import React from 'react';
import { connect } from 'react-redux';
const withRedux = (WrappedComponent) => {
const mapStateToProps = (state) => ({ state });
const mapDispatchToProps = (dispatch) => ({ dispatch });
const ConnectedComponent = connect(mapStateToProps, mapDispatchToProps)(WrappedComponent);
return (props) => <ConnectedComponent {...props} />;
};
export default withRedux;
```
这个高阶组件接受一个类组件作为参数,并返回一个连接了redux的新组件。在这个新组件中,redux的state和dispatch通过props注入到了原来的类组件里。使用这个高阶组件的方式如下:
```javascript
import React, { Component } from 'react';
import withRedux from './withRedux';
class MyComponent extends Component {
render() {
const { state, dispatch } = this.props;
// 使用state和dispatch
return (
// ...
);
}
}
export default withRedux(MyComponent);
```
在这个示例中,MyComponent将会接收到redux的state和dispatch作为props,可以通过this.props.state和this.props.dispatch来使用它们。
阅读全文