【发布时间】:2019-01-20 14:54:10
【问题描述】:
我想在路由中使用redux,所以我使用路由创建了选项卡并想调用reducer方法。 所以这里是流程:
index.js -> App.js -> Tabs.js -> Router(Route -> Home / Contact Us) 我已经在 index.js 中提供了 store,但是我想从 Home.js 调用 reducer 方法。但它给出了找不到该方法的错误。
有人可以帮我如何在路由中使用 redux,考虑到路由不是在 index.js 或 app.js 中完成的。
源代码供参考:
home.js
......
const mapStateToProps = (state) => {
return {
sliderfunc: state.sliderfunc
};
}
const mapDispatchToProps = (dispatch) => {
return {
previous: (name) => {
dispatch(previous(name));
}
};
}
export default connect(mapStateToProps, mapDispatchToProps)(Tabs);
index.js
....
ReactDOM.render( <Provider store = {store}> <App /></Provider>,
document.getElementById('root'));
....
app.js
....
<Fragment>
<Tabs />
</Fragment>
.....
tabs.js
....
<Router>
<Fragment>
<nav role="navigation" >
<NavLink exact to='/' >Home</NavLink>
<NavLink to='/gallery' >Gallery</NavLink>
<NavLink to='/contactus' >Contact Us</NavLink>
</nav>
<Switch>
<Route exact path='/' exactly component={Home} ></Route>
<Route exact path='/gallery' exactly component=
{Gallery}></Route>
<Route exact path='/contactus' exactly component=
{ContactUs}></Route>
</Switch>
<button onClick = {() => this.props.previous('ij')}>Click
Here</button>
</Fragment>
</Router>
....
谢谢 伊山耆那教
【问题讨论】:
-
某行代码 sn-p 将帮助人们理解您的问题。
标签: reactjs react-native react-redux react-router