javascript - 如何在另一个组件 useEffect 中设置状态?
问题描述
快速查看我正在尝试做的事情:
import React, { useState, useEffect } from 'react';
const MainComponent = () => {
const [element, setElement] = useState([]);
const [setThings] = useSomething();
useEffect(() => {
setThings(element);
}, [element]);
};
const useSomething = () => {
const [things, setThings] = useState([]);
// do stuff now that you've received things
return [setThings];
};
和另一个文件中的另一个钩子。这工作得非常好,并且是在 reactjs 中使用画布的绝佳解决方案。我有一个警告,我似乎无法通过我的研究来解决它:
Line 150:7: React Hook useEffect has a missing dependency: 'setThings'. Either include it or remove the dependency array react-hooks/exhaustive-deps
在反应文档中,它说这会导致问题,因为它正在调用具有依赖关系的东西,但我不确定它们在哪里?
解决方案
尝试添加setThings
到依赖数组中useEffect
。
useEffect(() => {
setThings(element);
}, [element, setThings]);
推荐阅读
- node.js - 尝试代理请求时发生模拟服务工作人员错误
- java - 由于缺少 lombok 生成的方法,Netbeans 每次更改分支时都会显示解析错误
- google-cloud-platform - Google Cloud 快照的启动问题
- flutter - 谷歌地图不滚动
- ios - Cordova 使用 iframe 嵌入网站,但页面名称的请求引用者消失了
- amazon-web-services - EKS-Fargate 上的 HPA
- findbugs - 如何修复 FindBus、SSCU:方法从已被 3rdparty jar 遮蔽的类中调用方法
- reactjs - 无法为 react-charts-2 设置选项
- python - 遍历两个不均匀列表并在第二个列表结束时停止
- reactjs - React - nextjs 在 useEffect 中调用自定义钩子