[英]React.js flickering issue
我按照在線課程制作了一個網站,當我移動到其他頁面時,我意識到我的網站正在閃爍。 我的代碼有問題嗎?
父母
import "./Product.css";
import Product from "./Product";
import { useLayoutEffect, useState } from "react";
import axios from "axios";
export default function Body() {
const [products, SetProducts] = useState([]);
useLayoutEffect(() => {
async function fetchProducts() {
const { data } = await axios.get("http://127.0.0.1:8000/api/products/");
SetProducts(data);
}
fetchProducts();
}, []);
return (
<div className="product">
{products.map((data) => (
<div key={data.id} className="product_child">
<Product product={data} />
</div>
))}
</div>
);
}
孩子
import { Link } from "react-router-dom";
export default function Product({ product }) {
return (
<div className="product">
<div className="prodcut_child">
<Link
style={{ color: "inherit", textDecoration: "none" }}
to={`/product/${product.id}`}
>
<img src={product.img} alt="img" />
<p>{product.title}</p>
<h1 style={{ fontSize: "1.3rem" }}>${product.price}</h1>
</Link>
</div>
</div>
);
}
我使用useEffect
並且它在閃爍,所以我嘗試useLayoutEffect
但仍然發生了......(我使用了Link
標簽)
是因為我使用async await
來獲取 api 數據嗎?
或者我使用的是 django rest_framework,是不是 django rest_framework 速度低的問題?
謝謝你..!
我認為這是因為您所做的異步等待請求。
您應該嘗試在您的應用中實現加載功能
像這樣的東西
export default function Body() {
const [products, SetProducts] = useState([]);
const [loading, setLoading] = useState(false);
useEffect(() => {
async function fetchProducts() {
setLoading(true);
const { data } = await axios.get("http://127.0.0.1:8000/api/products/");
SetProducts(data);
}
fetchProducts();
setLoading(false);
}, []);
if (loading) return <div>loading...</div>
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.