• 【React】React获取URL参数,根据URL参数隐藏页面元素


    React获取URL参数,根据URL参数隐藏页面元素

    AI推荐方法

    如果您想使用React获取URL参数并相应地隐藏页面元素,可以按照以下步骤进行操作:

    导入React和React DOM:

    1. import React from 'react';
    2. import ReactDOM from 'react-dom';

    创建组件:

    1. class MyComponent extends React.Component {
    2. constructor(props) {
    3. super(props);
    4. // 初始化state
    5. this.state = {
    6. visible: true
    7. };
    8. }
    9. componentWillMount() {
    10. // 获取URL参数
    11. const param = new URLSearchParams(window.location.search).get('param');
    12. // 如果param等于某个特定的值,则隐藏元素
    13. if (param === 'hidden') {
    14. this.setState({
    15. visible: false
    16. });
    17. }
    18. }
    19. render() {
    20. return (
    21. <div>
    22. {this.state.visible && <p>这是可见的元素p>}
    23. {!this.state.visible && <p>这是隐藏的元素p>}
    24. div>
    25. );
    26. }
    27. }
    28. ReactDOM.render(<MyComponent />, document.getElementById('root'));

    1. 在组件的componentWillMount()生命周期方法中,使用window.location.search获取URL参数,并检查参数是否等于特定值。如果是,则在组件的状态中设置visiblefalse
    2. 在组件的render()方法中,使用{}括号及逻辑表达式在需要的时候显示或隐藏元素。

    需要注意的是,componentWillMount()生命周期方法只会在组件挂载之前调用一次,之后不会再调用。如果您需要在URL参数改变时重新检查并更新元素的显示状态,可以考虑使用componentDidMount()生命周期方法或React Router的相关功能。

    根据取参数案例实现

    url取参数

    1. const params = new URLSearchParams(window.location.search);
    2. const key = params.get('domFlag');

    react页面

    1. <Router>
    2. <ScrollToTop />
    3. <LocationPathnameLogger />
    4. <RootContextProviders>
    5. <GlobalStyles />
    6. {domFlag !=='hide' && <Menu data={menu} isFrontendRoute={isFrontendRoute} />}
    7. <Switch>
    8. {routes.map(({ path, Component, props = {}, Fallback = Loading }) => (
    9. <Route path={path} key={path}>
    10. <Suspense fallback={<Fallback />}>
    11. <ErrorBoundary>
    12. <Component user={user} {...props} />
    13. </ErrorBoundary>
    14. </Suspense>
    15. </Route>
    16. ))}
    17. </Switch>
    18. <ToastContainer />
    19. </RootContextProviders>
    20. </Router>

  • 相关阅读:
    kube-scheduler 调度流程
    《Linux C/C++服务器开发实践》之第5章 UDP服务器编程
    5. 多重背包问题 II(acwing)
    智能合约语言(eDSL)—— proc_macro实现合约init函数
    Linux扩展篇之Shell编程四(正则表达式入门)
    Redis中的Hash设计和节省内存数据结构设计
    vscode 代码片段,快捷注释
    Shell编程之免交互
    RabbitMQ的使用
    基于nodejs+vue的读书会网站
  • 原文地址:https://blog.csdn.net/wenchun001/article/details/132765109