【问题标题】:What does the value (Array) after the comma after the function mean in Javascript? (() => {}, [])Javascript中函数后逗号后的值(数组)是什么意思? (() => {}, [])
【发布时间】:2020-09-30 18:40:32
【问题描述】:

我想这已经在某个地方被问过了,但是如果没有一个例子就很难描述我的意思,所以我们开始吧......我不是 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!!!???*/

【问题讨论】:

    标签: javascript syntax


    【解决方案1】:

    来自React docs: “如果你想运行一个效果并且只清理一次(在挂载和卸载时),你可以传递一个空数组([])作为第二个参数。这告诉 React 你的效果不依赖于任何来自props 或 state,因此它永远不需要重新运行。这不作为特殊情况处理 - 它直接遵循依赖项数组的工作方式。”

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2016-08-12
        • 1970-01-01
        • 2018-10-14
        • 2015-07-05
        • 2018-01-05
        • 2022-04-18
        • 1970-01-01
        • 2018-05-15
        相关资源
        最近更新 更多