我正在使用useEffect挂钩,在某些情况下,我不需要返回任何东西。处理这种情况的最佳方法是什么?
// 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。如果您的效果不需要清理,则返回undefined(或不返回)。
最好的选择是返回未定义或空函数吗?
最佳答案
我想你打算写
useEffect(() => {if (fooRef.current) fooRef.current.focus() } , [fooRef])
当前的实现返回的是执行
fooRef.current && fooRef.current.focus()
的布尔结果,而不是如果fooRef.current
为true则仅执行focus函数。