useEffect监听props的属性?
// 子组件
import React, { useEffect } from 'react';
export default ({ data = [] }) => {
useEffect(() => {
console.log(1);
}, [data]);
return <div>哈哈哈</div>;
};
发现一个有趣的现象,监听props时候,有时候我们会给props的一些属性设置默认值,比如[] {} ,所以每次父组件更新时候,并且这个data不传或者undefined时候, 都会导致useEffect被触发,
现在有个疑问,组件props内的属性设置默认值好还是不设置好,, 设置了就有上面的问题,纠结
回复
1个回答

test
2024-07-20
你可以换一种设置方式的
export default (props) => {
const {data = [] } = props
useEffect(() => {
console.log(1);
}, [props.data]);
return <div>哈哈哈</div>;
};
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容