如何更改组件中的路由确实已安装

Posted

技术标签:

【中文标题】如何更改组件中的路由确实已安装【英文标题】:How to change the route in component did mount 【发布时间】:2020-09-24 06:59:47 【问题描述】:

我在渲染中使用此代码来显示标题。需要移动这个逻辑来挂载事件。如何做到这一点。

  render() 
     const viewPage = this.props.history.location.pathname.includes("/app/accountManagers/view/")
     const editPage = this.props.history.location.pathname.includes("/app/accountManagers/edit/")
     const newPage = this.props.history.location.pathname.includes("/app/accountManagers/new/")


        return (<div >
                <div className="app-wrapper">
                    <ContainerHeader match=this.props.match title=<IntlMessages id=editPage ? "DIC_ADMIN_SETTINGS_ACCOUNT_MANAGERS_EDIT_MANAGER" : newPage ? "DIC_ADMIN_SETTINGS_ACCOUNT_MANAGERS_NEW_MANAGER" : "DIC_ADMIN_SETTINGS_ACCOUNT_MANAGERS_VIEW_MANAGER" /> />

                </div>

【问题讨论】:

你为什么不简单地使用路线而不是匹配位置 根据路线需要更改我的索引页面中的标题。所以我使用了这个逻辑 所以这个组件没有在上述路径之一上呈现? 【参考方案1】:
componentDidMount()

    const viewPage = this.props.history.location.pathname.includes("/app/accountManagers/view/")
    const editPage = this.props.history.location.pathname.includes("/app/accountManagers/edit/")
    const newPage = this.props.history.location.pathname.includes("/app/accountManagers/new/")

    return(
            <div>
                    <div className="app-wrapper">
                            <ContainerHeader match=this.props.match title=
                                    <IntlMessages id=editPage ? 
                                    "DIC_ADMIN_SETTINGS_ACCOUNT_MANAGERS_EDIT_MANAGER" : newPage ? 
                                    "DIC_ADMIN_SETTINGS_ACCOUNT_MANAGERS_NEW_MANAGER" : 
                                    "DIC_ADMIN_SETTINGS_ACCOUNT_MANAGERS_VIEW_MANAGER"
                                     />
                                     
                             />
                     </div>
             )

【讨论】:

以上是关于如何更改组件中的路由确实已安装的主要内容,如果未能解决你的问题,请参考以下文章

组件中的 DoCheck 确实检测到服务中的更改

React-Router 在路由更改时重新安装组件

如果用户已登录,则更改路由名称和组件

如何强制 Vue 在路由更改时销毁并重新创建组件?

如何调试反应路由器未在 url 更改时加载组件

如何在 react 中的新路由更改上使用 useEffect 重新渲染变量