所以在过去的几个月中,我在一个特定项目上使用了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([]);
还有其他人遇到吗?
useState中的第一项是状态本身,第二项是对其进行更新的函数。https://reactjs.org/docs/hooks-reference.html#usestate。
您用错误的方式破坏了数组。