小编Har*_*ary的帖子

如何修复错误:水合失败,因为初始 UI 与我的代码中服务器上呈现的内容不匹配,如下所示

export default function Page({ data1 }) {
  const [bookmark, setBookmark] = useState(
    typeof window !== 'undefined'
      ? JSON.parse(localStorage.getItem('bookmark'))
      : []
  );

  const addToBookmark = (ayatLs) => {
    setBookmark([...bookmark, ayatLs]);
  };

  useEffect(() => {
    localStorage.setItem('bookmark', JSON.stringify(bookmark));
  }, [bookmark]);

  return (
    <>
      <div className="modal-body">
        <ul>
          {bookmark.map((x) => (
            <li key={x.nomor}>{x.tr}</li>
          ))}
        </ul>
      </div>
    </>
  );
}
Run Code Online (Sandbox Code Playgroud)
    {data1.map((x)) => (
      <div className="pb-6 flex justify-between">
        <span
          onClick={() => addToBookmark(x)}
          className={`text-sm `}>
          {x.tr}
        </span>       
      </div>  
    )}
Run Code Online (Sandbox Code Playgroud)

当我typeof window !== 'undefined'使用Error: Hydration failed …

javascript reactjs next.js

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

javascript ×1

next.js ×1

reactjs ×1