在 Javascript 中,函数后面逗号后面的值(Array)是什么意思?(() => {}, [])



我想以前有人问过这个问题,但如果没有例子,很难描述我的意思,所以我们开始。。。我不是Javascript专业人士,我有一段代码(从一个例子中复制和修改(,它有我想理解的语法(这样我就可以在不必要的情况下删除(

/* useEffect() is just a lifecycle method for the application */
React.useEffect(() => {
/* To put in context I am getting data from a database */
AsyncStorage.getItem(id)
.then((value) => {
if (value != null) {
const masterList = JSON.parse(value);
setData(masterList);
}
})
.catch((err) => {
alert(error);
});

}, []);  /* WTF IS THIS ARRAY DOING HERE!!!???*/

从React文档:"如果要运行一个效果并只清理一次(在装载和卸载时(,可以将空数组([](作为第二个参数传递。这告诉React,你的效果不依赖于道具或状态的任何值,所以它永远不需要重新运行。这并不是一种特殊情况——它直接来自于依赖项数组的工作方式">

基本上,使用效果挂钩的想法是,它可以被告知状态或道具的哪些更改将导致再次调用该方法。在[]的情况下,您声明它应该表现为componentDidMount,并且只评估一次。

这不是JavaScript特定的函数签名,而是React签名。在引用的情况下,[]将作为参数传递,特别是第二个参数。它为React函数提供了一些附加信息,用于确定它应该运行的逻辑。

最新更新