如何从 React 库中重用 Redux 存储

sim*_*uin 5 reactjs redux react-redux

我有两个存储库,如下所示:

main-app:一个create-react-app使用一些减速器定义 redux 存储的项目。

const reducers = combineReducers({
    reducer1: myReducer
});
const store = createStore(reducers);
const app = (
    <Provider store={store}>
        <App />
    </Provider>
);
ReactDOM.render(app, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)

以及在我的库中以下面定义的方法返回App的组件。<AppHeader />renderlib-header

lib-header:使用主应用程序商店的外部库,定义如下:

class AppHeader extends Component {
  render() {    
    return (
        <div>{this.props.isAuthenticated ? 'User authenticated' : 'User not authenticated'}</div>
    );
  }
}

AppHeader.propTypes = {
    isAuthenticated: PropTypes.bool,
    onSignin: PropTypes.func
};

const mapStateToProps = state => {
    return {
        isAuthenticated: state.auth.token !== null
    }
};

const mapDispatchToProps = dispatch => {
    return {
        onSignin: () => dispatch(actions.signIn())
    }
};

export default connect(mapStateToProps, mapDispatchToProps)(AppHeader);
Run Code Online (Sandbox Code Playgroud)

但是,当lib-header尝试使用该connect(...)函数时,它会生成以下错误:

在“Connect(e)”上下文中找不到“store”。将根组件包装在 a 中,或者将自定义 React 上下文提供者传递给连接选项中的 Connect(e) 并将相应的 React 上下文使用者传递给 Connect(e) 。

由于某些原因,主应用程序中定义的商店Provider无法访问外部库,即使该AppHeader组件是在我的主应用程序的组件内部定义的Provider

任何帮助,将不胜感激。

谢谢!