首页 > 解决方案 > 在 useState 中包装一个函数

问题描述

getListViewSetting为 useState 包装一个函数”,这是什么意思?

 const [isListView, setIsListView] = useState(
    getListViewSetting(location?.pathname?.replace('/', ''), true),
  );

标签: reactjs

解决方案


无论谁(或任何工具)说这可能意味着你要做:

const [isListView, setIsListView] = useState(
  () => getListViewSetting(location?.pathname?.replace('/', ''), true)
);

如果您将一个函数传递给useState,那么 react 将只调用该函数一次以确定初始值。如果getListViewSetting价格昂贵,那可以提高性能,因为您拥有的代码将需要在每次渲染时调用它,即使该值在第一次渲染时无用。


推荐阅读