【发布时间】: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