为何console.log显示参数已定义,仍报destructured parameter is undefined错误?
错误产生原因
- 核心报错原因:你定义的内部函数
loginuser使用了对象解构作为入参,要求传入一个包含username和password属性的对象,但你在调用loginuser()时没有传入任何参数,函数接收到的入参为undefined,对undefined执行对象解构操作就会直接抛出你遇到的TypeError: (destructured parameter) is undefined错误。 - 附带代码问题1:
fetch请求的body序列化写法错误,JSON.stringify(username, password)仅会序列化username的值,后端无法拿到完整的登录参数,正确写法为JSON.stringify({username, password})。 - 附带逻辑问题:你直接在JSX返回值中调用
loginuser,会导致组件每次渲染都自动触发登录请求,不符合登录功能的交互预期,建议改为绑定到登录按钮的点击事件回调中触发。
内容的提问来源于stack exchange,提问作者filifunk
相关产品推荐
相关产品推荐

