繁体   English   中英

browserHistory.push() 是反模式吗?

[英]Is browserHistory.push() an anti-pattern?

所以这是我倾向于强制导航某个地方的情况:

资源页面有删除资源的按钮。 我只想删除资源导航其他地方,但如果删除失败,我不想导航。 这需要能够说“进行删除调用,等待完成,检查发生了什么,相应地导航”

这对我来说就像代码的味道。 它与 react-router 的声明式方法不一致。 我错了吗?

有没有更惯用的方法来做到这一点:

// this.props.resource from container
<Link onClick={_ => {
  deleteResource(this.props.resource).then(result => {
    if (!result) // don't navigate, dispatch an action
    else browserHistory.push("different/place/entirely") // <= totally imperative
}/>

路由似乎势在必行,所以我不确定你能解决这个问题。

至于它是否是一种反模式——我只能就我自己的代码库中的惯用语发表意见,但我在比Link更方便的地方使用browserHistory.push (通常是这样)。

也就是说:我确实认为在带有browserHistory.push音乐会上使用Link是很奇怪的。 如果没有与路由相关的原因这样做,您应该使用通用组件。

最后: 在组件 JSX Props 中使用箭头函数一种反模式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM