React Hooks的useState反向语法-很奇怪

问题描述 投票:0回答:2

所以在过去的几个月中,我在一个特定项目上使用了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
2个回答
3
投票

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


0
投票

您用错误的方式破坏了数组。

© www.soinside.com 2019 - 2024. All rights reserved.