其实核心判断条件的逻辑在于,我想判断这个 err.data.password1到底存不存在,存在的话就输出,不存在的话就跳过这段代码执行下一段。
原来的代码是这样的,如下。
else if (err.data.password1[0] !== '') {
this.$message({
message: err.data.password1[0],
type: "error",
});
}
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '0')
然后想了想会不会是判断条件的问题,这样写是不是不太能很好地判断err.data.password1[0]是否存在,就是说,这段代码可能不能很清晰地要表达我的意图
然后我改成了这样(正规一些,自带判断存在性质
else if (err.data.password1[0]) {
this.$message({
message: err.data.password1[0],
type: "error",
});
}
然后也还是报同样的错,我寻思,问题出在那个‘0’上面吧
于是我再把0删掉了,相当于判断err.data.password1是否存在(这样逻辑好像更清晰,更便于判断
灵光一闪,然后代码最终被我改成了这样,成功解决报错
else if (err.data.password1) {
this.$message({
message: err.data.password1 ? err.data.password1[0] : "",
type: "error",
});
}