我有一个需要通过添加新的查询字符串参数来更新(推送)当前位置的react组件。
示例:
当前LOC:http://localhost/#/reports?state=open
在LOC之后:http://localhost/#/reports?state=open&category=2
更新后告诉反应路由器导航到新位置,其他一些组件将接收更改并过滤一些数据... jadajadajada
我用(withRouter)包装我的组件以获取对路由器对象的访问权限,但是我无法理解如何第一次获取当前位置(如果我甚至需要?)和其次如何添加新查询。
最好我也想"合并"位置查询部分的对象如{category:2},因为当前位置可能只是/ reports而不是/ reports?state = open。
想法,建议?
这是路由器2.4xxx(至少是这个问题的最新版本)
一些基本代码:
class Filter extends Component {
handleoOnSelectionChange(category){
// HERE - push new location by adding {'category': category.id}
}
render() {
....
}
const mapDispatchToProps = (dispatch) => {
....
}
const mapStateToProps = (state, {location}) => {
...
};
export default withRouter(connect(
mapStateToProps,
mapDispatchToProps
)(Filter))