reactjs - react redux中如何将store传递给子组件?
问题描述
我正在开发一个反应应用程序,我创建了一个全球商店
const store = HsGlobalStore();
class HsManApp extends React.Component {
render() {
return (
<div className="d-flex flex-column bag-white">
<Provider store={store}> <NewHsMasterNav /> </Provider>
<div className="clearfix"></div>
<div className="container-fluid hs-fix-nav-content ">
<Router>
<Provider store={store}>
<Route path="/" exact component={HsHome} />
<Route path="/:pageName" component={HsPage} />
</Provider>
</Router>
</div>
</div>
);
}
}
const id = "hs_welcome_root";
ReactDOM.render(<HsManApp />, document.getElementById(id));
export default HsManApp;
我通过 Provider 将此商店传递给母版页组件
<Provider store={store}>
<Route path="/" exact component={HsHome} />
<Route path="/:id" component={HsPage} />
</Provider>
但是这个Man组件也有sob组件
class HsHome extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div className="row">
<NewHsAvatarBox />
</div>
);
}
}
export default HsHome;
现在。我怎样才能将这家商店传递给这个零件?
解决方案
您需要“装饰”您的组件,将商店传递给道具
import { connect } from 'react-redux';
class MyComponent extends React.Component {
constructor(props) {
super(props);
console.log(this.props.name);
}
...
}
const mapStateToProps = (store) => {
// console.log('store', store);
return {
name: store.<reducer>.name,
};
};
export default connect(mapStateToProps, null)(MyComponent);
然后使用 mapStateToProps 中导出的名称作为 MyComponent 中的道具
推荐阅读
- reactjs - React Hook useState 不更新 UI
- loops - 尝试登录我的 Elementary OS 密码时遇到挑战
- python - 如何通过 Scrapy 收集 jpeg
- javascript - 有没有办法让两个函数同名?
- python - 如何在 BeautifulSoup 4 中找到明文兄弟?
- r - 如何将特定的'NA'值(不是全部'NA')替换为R数据框中的特定数值?
- javascript - 添加第二个幻灯片后幻灯片停止工作
- ios - WKWebView PDF 旋转固定
- c - 如何使用 GDB 调试共享对象库中的函数?
- clojure - 如何让这个函数在 Clojure 中工作?