reactjs - React useEffect 在组件安装和依赖项更改上运行
问题描述
我想知道如何在组件安装和依赖值更改中运行 useEffect 副作用。目前我正在使用两个 useEffects 来实现这一点。
useEffect(() => {
let isMounted = true;
const getUsers = async () => {
try {
const userResponse = await api.get('/users');
if (isMounted) { setUsers(userResponse.data); }
} catch (error) {
console.log(error);
}
};
getUsers();
}, []);
useEffect(() => {
let isMounted = true;
const getUsers = async () => {
try {
const userResponse = await api.get('/users');
if (isMounted) { setUsers(userResponse.data); }
} catch (error) {
console.log(error);
}
};
getUsers();
}, [netInfo]);
无论如何使用一个useEffect来实现这一点?
解决方案
在组件第一次安装和每次重新渲染时运行
useEffect(() => {})
在组件第一次单独挂载时运行
useEffect(() => {}, [])
当组件第一次挂载和 someDependency 的值改变时运行。
useEffect(() => {}, [someDependency])
您可以删除第一个useEffect
.
推荐阅读
- apache-flink - Flink - Table SQL API - 向表中添加列
- node.js - 节点预gyp错误!堆栈错误:无法执行'/usr/local/bin/node /usr/local/lib/node_modules
- appium - 当我尝试在 Browserstack 上使用 AppiumDriver 运行测试时,我收到“页面对象类 integration.pages.login.LoginPage 看起来很狡猾:”错误
- floating-point - 当加数包含舍入误差时如何评估交替序列?
- magento2.2 - 在单个产品页面 Magento 2 上添加到购物车后如何重定向到结帐页面?
- python - 将空行添加到 python 数据框
- php - PHP中的字符串数组(检查2个或更多字符串是否具有相同的开头)
- cmake - Apache Thrift 编译 C++ 服务器
- webpack - 用 webpack-dev-server 收听地址?
- python - 在 MPII Human Pose 数据集上训练 Keras 分类器