最近,我开始使用React构建单页应用程序,并且我选择了react-router来执行导航部分,但是当需要在页面之间传递参数时,我找到了来自官方文档是将参数作为查询字符串或参数添加到URL中,这不是我所期望的(我希望隐藏参数,就像我们在传统POST方法中与服务器通信时那样)。
经过一段时间的谷歌搜索,我找到了一个解决方案,打电话
browserHistory.push({
path : '/Paradise',
state : { location : 'Shangri-La'}
})
以browserHistory的状态传递参数,并使用
检索状态this.props.location.state.location
这很好,而且正是我所期待的。我只想知道这是否是一个好习惯。抱歉我的英语不好。
答案 0 :(得分:0)
良好做法是避免将其称为location
..对我来说,我称之为previousRoute
。
另一个好的做法是,我将browserHistory.push
包装在名为redirect
的方法中并放入超类中。
class Base extends React.Component {
redirect(to, params = {} ) {
params = Object.assign(params, { previousRoute : this.props.location.pathname});
return browserHistory.push({
path : to,
state : params
});
}
}
然后:
class AnyOtherComponent extends Base {
//... you can call
this.redirect('Paradise', {param1: val1});
}