无论confirm()值如何,Typescript条件代码都在运行



我正在尝试实现一个对话框,用于与用户确认他们是否要继续执行操作。

deleteItem(index: number): void {
let response = window.confirm("Are you sure?");
if (response) {
// delete item code
this.item.splice(index,1);
console.log("A");
} else {
console.log("B");
}
}

当我单击deleteItem按钮触发对话时,它会删除该项目,但会打印正确的console.log()字符串。有人能帮我理解为什么会发生这种情况以及如何纠正吗?

你确定吗"好的"=>删除该项目并记录";A";在控制台中。

你确定吗"取消"=>删除该项目并记录";B";在控制台中。

未更改代码:

deleteItem(index: number): void {
let response = window.confirm("Are you sure?");
if (response) {
// delete feedback in students' boolean feedback arrays
for (var i = 0; i < this.csvRecords.length; i++) {
if (this.students[i].feedbackBoolean[index] == true) {
// add deduction value to student grade before delete
var newGrade = parseFloat(this.students[i].grade) + this.feedback[index].deduction
this.students[i].grade = newGrade.toString();
}
this.students[i].feedbackBoolean.splice(index,1);
}
// remove 1 element at index
this.feedback.splice(index,1);
console.log("A");
} else {
console.log("B");
}
}

我添加了未更改的代码,看看是否有什么可以引发我可能忽略的这种行为。提前谢谢。

请原谅我使用javascript来实现您的示例,但我发现似乎没有问题。你能提供一个可重复的例子吗?

const items = [0, 1, 2, 3, 4];
const deleteItem = (index) => {
let response = window.confirm("Are you sure?");
if (response) {
// delete item code
items.splice(index, 1);
console.log("A");
} else {
console.log("B");
}
}
deleteItem(0);
console.log(items);

相关内容

  • 没有找到相关文章

最新更新