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。
任何帮助,将不胜感激。
谢谢!
| 归档时间: |
|
| 查看次数: |
889 次 |
| 最近记录: |