javascript - 当主体函数进行条件检查时,useEffect 钩子(Hook)应该返回什么?

标签 javascript reactjs react-hooks

我正在使用 useEffect Hook ,在某些情况下我不需要返回任何东西。处理这种情况的最佳方法是什么?

// fooRef is a reference to a textfield (belonging to the same component). Sometimes the fooRef is not there,because of redirections) that's why I need to check if it exists

useEffect(() => fooRef.current && fooRef.current.focus()  , [fooRef])

像这样使用时,React 会报错并显示以下错误消息: 除用于清理的函数外,效果函数不得返回任何内容。你返回了 null。如果您的效果不需要清理,则返回未定义(或什么都没有)。

最好的选择是返回未定义函数还是空函数?

最佳答案

我想你打算写

useEffect(() => {if (fooRef.current) fooRef.current.focus()  } , [fooRef])

您当前的实现是返回执行 fooRef.current && fooRef.current.focus() 的 bool 结果,而不仅仅是执行焦点函数 if fooRef.current是真的。

关于javascript - 当主体函数进行条件检查时,useEffect 钩子(Hook)应该返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58057537/

相关文章:

javascript - 如何在 $.ajax( 中使用 if 语句并检查字符串响应?

javascript - 我是否必须为每个 webgl 程序创建单独的缓冲区?

javascript - XMLHttpRequest 无法向 Flask 服务器发出请求

reactjs - 以函数作为参数的自定义 React 钩子(Hook)

javascript - React,localStorage 在页面刷新时不持久

javascript - 如果未加载图像,请移除轮播箭头

css - 如何使用样式组件来使用 :hover within a React element,?

javascript - 如何在React上正确开发分页?

javascript - ReactJS HREF 导致状态丢失

javascript - 在组件外部使用 redux 钩子(Hook)来实现代码的可重用性