我正在使用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函数。

09-17 10:46