如何 hide/show 显示加载屏幕时所有反应组件?
How to hide/show all react component when loading screen is showing up?
就我而言,如果页面发生变化,加载屏幕将会出现。
例如:
http://localhost:3000/ ----> http://localhost:3000/fr
加载屏幕将显示页面转换
我想隐藏其他组件。我该怎么做?
import "tailwindcss/tailwind.css";
import "../styles/main.css";
import Router from "next/router";
import { useState } from "react";
import Loader from "../components/Loader/Loader";
function MyApp({ Component, pageProps }) {
const [loading, setloading] = useState(false);
Router.events.on("routeChangeStart", (url) => {
// inspect the router changing start
console.log("Router change...");
setloading(true);
});
Router.events.on("routeChangeComplete", (url) => {
// inspect the router changing complete
console.log("Router change completed");
setloading(false);
});
return (
<>
<Loader loadingbool={loading}/>
<Component {...pageProps}/>
</>
);
}
export default MyApp;
您可以使用取决于 loading
值的三元在 JSX 中添加一些条件
return (
<>
{loading ? <Loader loadingbool={loading}/> : <Component {...pageProps}/>}
</>
);
如果你想让组件仍然被渲染,根据loading
的值有条件地添加一个class(并使用.hidden
隐藏与css。 )
return (
<>
<Loader loadingbool={loading} {...(!loading && {className:'hidden'})} />
<Component {...pageProps} {...(loading && {className:'hidden'})} />
</>
);
通过使用布尔表达式我们可以隐藏屏幕数据
return (
<>
{loading ? <Loader loadingbool={loading}/> : <Component {...data}/>}
</>
);
就我而言,如果页面发生变化,加载屏幕将会出现。
例如:
http://localhost:3000/ ----> http://localhost:3000/fr
加载屏幕将显示页面转换
我想隐藏其他组件。我该怎么做?
import "tailwindcss/tailwind.css";
import "../styles/main.css";
import Router from "next/router";
import { useState } from "react";
import Loader from "../components/Loader/Loader";
function MyApp({ Component, pageProps }) {
const [loading, setloading] = useState(false);
Router.events.on("routeChangeStart", (url) => {
// inspect the router changing start
console.log("Router change...");
setloading(true);
});
Router.events.on("routeChangeComplete", (url) => {
// inspect the router changing complete
console.log("Router change completed");
setloading(false);
});
return (
<>
<Loader loadingbool={loading}/>
<Component {...pageProps}/>
</>
);
}
export default MyApp;
您可以使用取决于 loading
return (
<>
{loading ? <Loader loadingbool={loading}/> : <Component {...pageProps}/>}
</>
);
如果你想让组件仍然被渲染,根据loading
的值有条件地添加一个class(并使用.hidden
隐藏与css。 )
return (
<>
<Loader loadingbool={loading} {...(!loading && {className:'hidden'})} />
<Component {...pageProps} {...(loading && {className:'hidden'})} />
</>
);
通过使用布尔表达式我们可以隐藏屏幕数据
return (
<>
{loading ? <Loader loadingbool={loading}/> : <Component {...data}/>}
</>
);