【发布时间】:2020-05-11 15:58:51
【问题描述】:
我在父组件中定义了一个更新本地状态并将其传递给子组件的函数。在子组件中,我想在每次 magLockDropdown 依赖值更改时调用 useEffect 挂钩中的函数。尝试执行此操作时,我收到如下所示的 lint 警告。在这个例子中禁用 linter 是个好主意吗?我知道每次父级重新渲染它都会重新创建正在传递的函数,但不确定这是否会导致警告。任何帮助表示赞赏。谢谢!
父组件中的函数。
const updateWeeklyTestState = (name, value) => {
setWeeklyTest({
...weeklyTest, [name]: value
})}
子组件中的UseState钩子。
useEffect(() => {
updateWeeklyTestState (failList, maglockDropdown)
}, [maglockDropdown])
esLint 警告:
React Hook useEffect 缺少一个依赖项:'updateWeeklyTestState'。要么包含它,要么移除依赖数组 react-hooks/exhaustive-deps
编辑
儿童声明
export default function Maglocks (props) {
const [maglockDropdown, setMaglockDropdown] = useState(['Pass'])
const { maglocks, weeklyTestState, updateWeeklyTestState, addFailedMaglocksToArray } = props
【问题讨论】:
-
你能粘贴子组件的声明吗?即您命名组件的部分
-
当然!我已经编辑了我的帖子。
-
谢谢,不清楚 updateWeeklyTestState 是否被正确地从 props 中拉出,但看起来你已经搞定了。
标签: javascript reactjs react-hooks jsx use-effect