我对React Router 4有问题。我不确定它是否可解决:
基本上可以使用。但是问题是,每当我通过左侧链接点击/items/:id/
时,它也会与/items
匹配。这会导致重新显示侧边栏中的链接列表。解决方案是嵌套路线。但是由于接口/ DOM,这是不可能的。左侧边栏需要与项目详细信息无关。我需要将它们分开:
<div>
<div className={styles.sidebar}>
<HeaderContainer />
<Switch location={location}>
<Route exact path="/" component={Homepage} />
<Route path="/items" component={Items} />
</Switch>
</div>
<div className={styles.content}>
<Route path="/items/:id" component={ItemDetail} />
</div>
</div>
非常感谢您的提前帮助!
答案 0 :(得分:1)
我有类似的布局,我使用了类似的东西
//App.jsx
<Router path="/" component={Page}>
//Page.jsx
<Layout>
<MasterView>
<DetailView>
</Layout>
//MasterView.jsx
componentDidMount() {
const { dispatch } = this.props
const data = await api.getData();
dispatch(updateDetail(data));
}
connect()(MasterView)
// DetailView.jsx
import { connect } from 'react-redux';
render() {
return <ul>{this.props.list.map((item) => <li>{item}</li>)}</ul>;
}
// map the props you need to redux state
const mapStateToProps = (state) => ({ list: state.data.list });
connect(mapStateToProps)(DetailView)