React报错TypeError: Cannot read property 'trim' of undefined求助
问题分析:TypeError: Cannot read property 'trim' of undefined in Login组件
嘿,我一眼就瞅到问题的根源了!咱们先看看你代码里的关键部分:
const username = "me@domain.com "; console.log(username) const creds = { username: username.value.trim(), password: password.value.trim() };
控制台能输出"me@domain.com",说明username确实是个有效的字符串,但你接下来写的username.value.trim()就有问题了——普通字符串根本没有.value属性!你把它当成DOM输入框的引用了,但实际上它就是个普通的字符串变量,所以username.value会返回undefined,再调用.trim()自然就触发TypeError了。
给你两种修正方案,根据你的需求选:
方案1:如果username应该是输入框的DOM引用
如果你本来想让username对应页面上的用户名输入框,那得像获取password那样用ref:
- 先给用户名输入框添加ref:
<input ref="username" type="email" /> - 然后在代码里获取引用:
const username = this.refs.username; const creds = { username: username.value.trim(), password: password.value.trim() };
方案2:如果username就是固定字符串
如果你本来就想用这个固定的字符串作为用户名,那直接调用字符串的.trim()方法就行,去掉多余的.value:
const username = "me@domain.com "; const creds = { username: username.trim(), // 直接用字符串本身的trim方法 password: password.value.trim() };
这样修改后,就不会再出现那个TypeError啦!
内容的提问来源于stack exchange,提问作者whoisearth
相关产品推荐
相关产品推荐

