【问题标题】:React Hooks reversing syntax of useState - pretty strangeReact Hooks 反转 useState 的语法 - 很奇怪
【发布时间】:2020-04-13 05:44:18
【问题描述】:

所以在过去的几个月里,我在一个特定的项目中大量使用了 React Hooks - 这是我第一次看到这样的事情,想知道是否有人对正在发生的事情进行解释。

我有以下几点:

  const [ setSectionDefects, sectionDefects ] = useState([]);
  const { propertyDefects, propertySections } = props;

  useEffect(()=> {
    const defectsBySection = [];

    propertySections.map(propertySection => {
      const sectionId = propertySection.SectionId;
      const defectArray = [];
      const sectionObject = { id: sectionId, defects: defectArray };
      propertyDefects.map(propertyDefect => {
        if (propertyDefect.WosectionId == sectionId) {
          defectArray.push(propertyDefect);
        }
      })
      defectsBySection.push(sectionObject);
    }) 

   // setSectionDefects(defectsBySection);
   // sectionDefects(defectsBySection);
  }, []);

  console.log(setSectionDefects, sectionDefects)

当代码到达console.log 语句时,它说'setSectionDefects' 是一个数组,'sectionDefects' 是设置它的函数!

我的脑子被炸了,我这辈子都想不通——语法,据我所知,首先是函数声明,然后是要设置的变量——

即:const [ setSectionDefects, sectionDefects ] = useState([]);

还有其他人遇到过这种情况吗?

【问题讨论】:

    标签: reactjs syntax state react-hooks


    【解决方案1】:

    useState 中的第一项是状态本身,第二项是更新它的函数。 https://reactjs.org/docs/hooks-reference.html#usestate.

    在您的情况下,只需滑动名称即可。

    const [ sectionDefects , setSectionDefects] = useState([]);
    

    【讨论】:

      【解决方案2】:

      您的数组解构方式错误。

      应该是:

      const [ sectionDefects, setSectionDefects ] = useState([]);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-11
        • 1970-01-01
        • 2020-01-05
        • 2021-04-14
        • 2019-06-06
        • 1970-01-01
        • 2019-07-07
        相关资源
        最近更新 更多