reactjs 为什么引用值更新时useRef不更新?

pb3s4cty  于 2023-08-04  发布在  React
关注(0)|答案(2)|浏览(174)

我有一个代码:

const page = useRef(1);
const nextPage = useRef(page.current + 1);

字符串
我想知道为什么nextPage不会更新时,我更新page?既然nextPage引用了正在更新的page.current

page.current = 5;

cwdobuhd

cwdobuhd1#

如果这和你预期的一样,
nextPage = page.current + 1nextPage = useRef(page.current + 1)中的至少一个。
传入useRef的参数只在第一次渲染时使用一次,之后它会保留结果,直到您更改它。那和引用没有任何关系,它只是接受值的原样

pvcm50d1

pvcm50d12#

我认为你需要创建一个计算值。
useRef更新不应该在React中的DOM上呈现...
相反,你应该使用useState钩子,useMemo来计算和渲染,像这样:

function App() {
  const [page, setPage] = useState(1);
  const nextPage = useMemo(() => page + 1, [page]);

  return (
    <div>
      <p>{nextPage}</p>
      <button onClick={() => setPage((prevPage) => prevPage + 1)}>
        {page}
      </button>
    </div>
  );
}

字符串

相关问题