首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应复位useMemo值

反应复位useMemo值
EN

Stack Overflow用户
提问于 2022-03-30 20:29:49
回答 3查看 417关注 0票数 0

我需要重置我的useMemo值在我的反应应用程序,但我不知道如何做。我对设置做了一个最小的例子。基本上,当单击重置按钮时,countDetails值需要为null。

代码语言:javascript
复制
export default function App() {
  const [count, setCount] = React.useState(0);

  const countDetails = React.useMemo(() => {
    if(count === 0) {
      return {
        data: [],
        key: 'index'
      }
    }


    return {
      data: ['hi'],
      key: 'index'
    }
  }, [count]);

  console.log(count, countDetails);

  return (
    <div>
      <h1>Hello StackBlitz!</h1>
      <p>Start editing to see some magic happen :)</p>
      <button onClick={() => setCount(count + 1)}>Count</button>
      <button>Reset</button> 
    </div>
  );
}

这是编辑器的代码。我不知道如何做到这一点,因为当重置按钮是点击计数变量的问题。所以useMemo不会更新。这是我试图做的一个极小的例子。我的应用程序更复杂,我不能使用将计数设置为9999的标志,然后在useMemo中检查count === 9999,然后返回null。有更好的方法吗?

EN

回答 3

Stack Overflow用户

发布于 2022-03-30 20:51:36

代码语言:javascript
复制
    const [count, setCount] = React.useState(0);
    let countArr = React.useMemo(() => {
    if (count === 0) {
      return {
        data: [],
        key: "index",
      };
    }

   return {
      data: ["hi"],
      key: "index",
    };
  }, [count]);

  console.log(count, countArr);
  const resetHandler = () => {
    countArr = null;
    console.log(countArr);
  };
  return (
    <div>
      <h1>Hello StackBltz!</h1>
      <p>Start editing to see some magic happen :)</p>
      <button onClick={() => setCount(count + 1)}>Count</button>
      <button onClick={resetHandler}>Reset </button>
    </div>
  );
票数 0
EN

Stack Overflow用户

发布于 2022-03-30 20:56:27

代码语言:javascript
复制
<button onClick={() => setCount(0)}>Reset</button> 

您的useMemo直接依赖于来自useStatecount。我希望我能正确理解,在你的情况下,重置意味着回到零。如果是这样的话,上面的代码就是这样做的,它将计数重置为零。

票数 0
EN

Stack Overflow用户

发布于 2022-03-30 20:58:47

将计数设置为0

代码语言:javascript
复制
<div>
  <h1>Hello StackBltz!</h1>
  <p>Start editing to see some magic happen :)</p>
  <button onClick={() => setCount(count + 1)}>Count</button>
  <button onClick={() => setCount(0)}>Reset </button>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71683775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档