React自定义密码可见性Hook返回undefined问题求助
问题解决:React自定义Hook返回值全为undefined
你的问题根源在于调用自定义Hook时没有执行函数,直接解构了Hook函数本身,导致所有返回值都是undefined。
错误代码:
const { passwordIsVisible, togglePasswordVisibility, PasswordIcon } = usePasswordVisibility; // 这里未调用函数,仅引用了函数本身
修改后的正确代码:
const { passwordIsVisible, togglePasswordVisibility, PasswordIcon } = usePasswordVisibility(); // 加上括号,执行Hook函数
原理说明:
自定义Hook本质是一个JavaScript函数,必须通过()调用它,才能执行内部的useState逻辑,返回包含状态和方法的对象。如果直接解构函数本身,函数对象里并没有passwordIsVisible这些属性,自然会得到undefined,进而导致后续图标组件渲染失败(因为PasswordIcon是undefined,不是有效的React组件)。
修改后,Hook会正常执行,返回的状态和方法都能正确获取,密码可见性切换功能和图标渲染都会正常工作。
内容的提问来源于stack exchange,提问作者Imperfectcircle
相关产品推荐
相关产品推荐

