• 1403/12/29

باگ react-helmet-async :

درود و خسته نباشید من تو react-helmet-async یک باگ برخورد کردم من عنوان سایت قرار میدم عنوان نشان نمیده باید سایت رفرش بشه تا نشان بده بدون رفرش نشان نمیده این سورس git hub من هستش 
https://github.com/SayyehBan/redux-blog-frontend

https://github.com/SayyehBan/redux-blog-backend

من هرکاری میکنم عنوان دوم بدون رفرش درست نشان نمیده از helmet خالی دا react-helmet تا async تست کردم مشکل دارن و این سورس ها خودم نوشتم خواستید مشاهده کنید
اینم سورس دفترچه تلفن کمی با سورس شما فرق داره کد backend کد frontend هستش

 

  • 1404/01/02
  • ساعت 15:19

سلام دوست من

این موارد رو تست کردی ؟

۱ - مطمئن شو که helmet در بالاترین سطح هست منظورم Providerاش هست در App.js یا index.js قرار بده

۲ - در برخی موارد React.StrictMode باعث میشه درست کار نکنه Helmet تست کن ببین بدون React.StrictMode مشکلت برطرف میشه یا نه

۳- برخی اوقات تغییر عنوان باید با useEffect اجرا بشه مخصوصاً اگه مقدار عنوان وابسته به state باشه:

import { Helmet } from "react-helmet-async";
import { useEffect, useState } from "react";

const MyComponent = () => {
  const [title, setTitle] = useState("عنوان اولیه");

  useEffect(() => {
    setTitle("عنوان جدید");
  }, []);

  return (
    <>
      <Helmet>
        <title>{title}</title>
      </Helmet>
      <h1>صفحه من</h1>
    </>
  );
};

اگر هیچکدام از راهکارهایی که دادم جواب نداد بررسی کن که document.title به‌طور مستقیم تغییر می‌کند یا نه:

useEffect(() => {
  document.title = "عنوان تستی";
}, []);

اگر این روش کار کرد احتمال داره مشکل از react-helmet-async یا نحوه رندر شدن باشه.

 در این حالت بهتره لاگ بگیری و ببینی آیا مقدار title هنگام تغییر مقدار توی Helmet درست آپدیت میشه یا نه.


  • 1404/01/04
  • ساعت 11:43

درود StrictMode برداشتم اوکی شد


logo-enamadlogo-samandehi