答案 0 :(得分:2)
我的赌注是他们在推送页面时使用state
property来向组件提供有关如何呈现页面的指示。更具体地说,表示它来自哪个组件。例如:
router.push({
pathname: '/posts/origami-studio-by-facebook',
state: { fromPosts: true }
})
然后您可以在路线组件中读取路由器的状态,以查看要显示的页面。
const Post = (productName) => {
if(this.context.router.location.state.fromPosts) {
return <Posts productPopup{productName} />
// open the posts page with a popup for the product
} else {
return <PostPage productName={productName} />
}
}
因此,当您在浏览器中打开页面时,state.fromPosts
未设置,您将被重定向到PostPage。最后,即使路线相同,你最终的结局也完全不同。