reactjs - 设置钩子的状态一次
问题描述
我不明白为什么当我运行时:
interface Xxx {
str: string
}
const [xxx, setXxx] = useState<Xxx>();
function getData() {
setXxx({
str: "aaa"
});
}
getData()
然后钩子一直被设置,永远。怎么跑getData
一次?
解决方案
要在组件 init 上只执行一次方法,可以使用钩子 useEffect :
useEffect(() => {
getData()
}, []);
这类似于 react 生命周期方法componentDidMount
。
一些文档:https ://reactjs.org/docs/hooks-effect.html#tip-optimizing-performance-by-skipping-effects
推荐阅读
- python-3.x - Method not allow in python3
- java - Replacing URL Character Encodings in Java
- sql-server - 如何连接到本地 SSAS 安装
- java - JPA 查询不会为等效的 MySQL 查询产生相同的结果
- javascript - 遍历 JS 中的对象数组
- python - 将 Pandas 数据框行转换为列
- google-apps-script - Google 日历插件 - 防止触发多个事件
- python - 计算列中值的出现次数并存储到字典
- python - 中途接收到 int() 和 ChunkedEncodingError: ('Connection broken: IncompleteRead..') 的错误无效文字?
- makefile - 使用 Makefile 将 linux 二进制文件推送到 JFrog Artifactory