我正在将以下 Prop (storeName)传递给我的组件:
<MyComponent reducerName="city" />
并且我想使用动态名称(this.props.reducerName)连接存储
例如
export default connect(state => ({
some: state[this.props.reducerName]
}), { })(MyComponent);
如何装饰Redux Connect,或者我必须做什么?
我试图跳过Redux连接并使用store.subscribe
componentDidMount() {
store.subscribe(() => {
this.setState({some: store.getState([this.props.reducerName]});
});
}
但是当我移到另一页时,会看到以下错误:
当组件将要卸载时,如何退订Redux存储?
最佳答案
connect
具有第二个参数ownProps
,它是一个包含所有传入 Prop 的对象。您将执行以下操作:
const mapStateToProps = (state, { reducerName = 'defaultReducer' }) => ({
some: state[reducerName],
});
export default connect(mapStateToProps)(MyComponent);