亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在頁面重新加載時重置渲染 UseEffect 和 Css

在頁面重新加載時重置渲染 UseEffect 和 Css

HUX布斯 2023-10-14 09:56:24
我從反應開始,嘗試制作一個水平滾動頁面。除了一件事之外,它似乎工作得很好,其中我很確定我缺少一些 React 邏輯。我使用一個 targetContainer div,其中包含幾個頁面(全屏)和一個 Navbuttons 類來移動它。在下面的代碼中,我使用“NavButtons”功能組件來設置 targetContainers“left”值。但是當我用 F5 重新加載頁面時,我的頁面保持設置的樣式(例如 left:-300%),但 pageCounter 返回到 0,破壞了導航按鈕...我很確定它是因為我使用的是 css 樣式,但是解決這個問題的正確/最佳方法是什么?import React, { useEffect, useState } from 'react';const NavButtons = (props) => {  const maxCount = props.maxCount;  const [pageCounter, setPageCounter] = useState(0);  const scrollPrev = function () {    if (pageCounter > 0) {      setPageCounter(pageCounter - 1);    }  }  const scrollNext = function () {    if (pageCounter < (maxCount - 1)) {      setPageCounter(pageCounter + 1);    }  }  useEffect(() => {    props.targetContainer.current.style.left = -((pageCounter) * 100) + 'vw';  }, [pageCounter, props.targetContainer]);  useEffect(() => {    setToZero();  }, []);  const setToZero = function () {    setPageCounter(0);    props.targetContainer.current.style.left = 0;  }  return (    <div className="NavButtons">      <button onClick={scrollPrev}>Prev</button>      <button onClick={scrollNext}>Next</button>    </div>  )}export default NavButtons;這是一個 stackblitz, https://react-zyvu7o.stackblitz.io/編輯: https://stackblitz.com/edit/react-zyvu7o?file =src/components/Navbuttons.js“不幸的是”它在 stackblits 上正常工作,但在我的本地主機上卻不起作用......:(
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

我相當有信心這只會由于瀏覽器緩存和熱重載而發生,這就是它在您的示例中工作而不是在本地工作的原因。



查看完整回答
反對 回復 2023-10-14
  • 1 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號