• 【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>

  • 相关阅读:
    Redis 切片集群
    nodejs+vue大学生招聘网站应聘系统设计与实现5b14b
    Linux 安装 Docker Compose
    4 条件判断和循环
    项目资源管理的流程、技术和工具
    day14--postman接口测试
    hadoop 3.x大数据集群搭建系列5-安装Flink
    IOS OpenGL ES GPUImage 图像镜像 GPUImageTransformFilter
    多对多的创建方式与Ajax
    Skywalking流程分析_5(字节码增强)
  • 原文地址:https://blog.csdn.net/wenchun001/article/details/132765109