所以在这种情况下,我倾向于在某个地方进行必要的导航:
资源页面有删除资源的按钮。我想在资源被删除后才导航到其他地方,但如果删除失败,我不想导航。这需要能够说出删除电话,等到它完成,检查发生了什么,相应地导航"
这对我来说就像是一种代码味道。它没有使用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
}/>
答案 0 :(得分:1)
路由似乎势在必行,所以我不确定你是否可以解决这个问题。
至于它是否是一种反模式 - 我只能在我自己的代码库中使用什么惯用语,但我在browserHistory.push
使用Link
更方便比Link
(经常)。
那就是说:我确实认为在browserHistory.push
的音乐会中使用def action_record_params
ActiveModelSerializers::Deserialization.jsonapi_parse!(params)
end
是很奇怪的。如果没有与路由相关的原因,您应该使用通用组件。
最后:it is an anti-pattern to use arrow-functions in component JSX Props。