因此,在过去的几个月中,我在一个特定项目上大量使用了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'是设置它的函数!
我很激动,我一生都无法弄清楚-正如我所了解的那样,语法首先是函数声明,然后是要设置的变量-
ie:const [setSectionDefects,sectionDefects] = useState([]);
还有其他人遇到吗?
答案 0 :(得分:3)
useState中的第一项是状态本身,第二项是更新状态的函数。 https://reactjs.org/docs/hooks-reference.html#usestate。
在您的情况下,只需滑动名称即可。
const [ sectionDefects , setSectionDefects] = useState([]);
答案 1 :(得分:0)
您用错误的方式破坏了数组。
应该是:
const [ sectionDefects, setSectionDefects ] = useState([]);