【问题标题】:Should I be using useState or setState?我应该使用 useState 还是 setState?
【发布时间】:2020-07-29 16:40:40
【问题描述】:

我有一个名为 myFunction 的函数,它不依赖任何东西。它只是生成一个多维数组。我应该直接将它的返回值传递给 useState() 还是应该使用 setState()?最佳做法是什么?为什么?

一)

const MyComponent = () => {

  const myFunction = () => {
    ...
    return someArrayOfArrays;
  };

  const [value, setValue] = useState(myFunction());

  return (
    <div>
      ...
    </div>
  );
};

B)

const MyComponent = () => {

  const myFunction = () => {
    ...
    return someArrayOfArrays;
  };

  const [value, setValue] = useState([]);

  useEffect(() => {
    setValue(myFunction());
  });

  return (
    <div>
      ...
    </div>
  );
};

谢谢!

【问题讨论】:

  • 这两个选项都使用useState()。您是在问是否应该使用useEffect() 来设置初始状态?
  • 如果myFunction() 是同步的并且预计总是返回值,那么我认为第二种方法没有任何好处。但是,如果其中任何一种情况都不成立,那么这两种方法就不一样了。

标签: reactjs react-hooks


【解决方案1】:
 useEffect(() => {
    setValue(myFunction());
  },[]);

你需要把这个 [] 放在 useEffect 中,因为你只需要运行一次。

【讨论】:

    猜你喜欢
    • 2020-03-20
    • 2021-07-12
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2015-10-16
    • 2023-03-06
    • 2013-02-20
    • 2011-07-31
    相关资源
    最近更新 更多