Page({ data: { inputValue: '', }, onInput(event) { this.setData({ inputValue: event.detail.value, }) }, onSubmit() { const num = parseInt(this.data.inputValue) const newCards = [] for (let i = 1; i <= num; i++) { const id = Date.now() + i const text = '卡片${i}' newCards.push({ id, text }) } const cardList = getApp().globalData.cardList getApp().globalData.cardList = cardList.concat(newCards) wx.navigateBack() }, })
时间: 2024-03-18 13:38:34 浏览: 18
根据你提供的代码,我看不出任何明显的错误。但是,我注意到以下几点:
1. `inputValue` 是一个字符串类型的变量,当你通过 `parseInt()` 方法将其转换为整数时,请确保输入的值确实可以被解析为整数,否则将返回 `NaN`。在这种情况下,你可以添加一个检查来确保输入的值是有效的整数,例如:
```
const num = parseInt(this.data.inputValue)
if (isNaN(num)) {
// 处理无效输入的情况
return;
}
```
2. 在 `for` 循环中,字符串模板表达式中用于插入变量值的语法不正确。应该使用 `${i}` 而不是 `卡片${i}`。例如:
```
const text = `卡片${i}`; // 错误的语法
const text = `卡片${i}`; // 正确的语法
```
3. 在 `onSubmit` 函数中,你将新卡片添加到全局数据对象 `cardList` 中,这可能会导致数据管理方面的问题。相反,你可以将新卡片添加到页面实例的数据对象中,并在返回前将其传递给上一个页面。例如:
```
onSubmit() {
const num = parseInt(this.data.inputValue)
const newCards = []
for (let i = 1; i <= num; i++) {
const id = Date.now() + i
const text = `卡片${i}`
newCards.push({ id, text })
}
this.setData({
newCards: newCards
})
wx.navigateBack()
}
```
然后在上一个页面中,你可以使用 `getCurrentPages()` 方法获取当前页面实例并访问其数据对象中的 `newCards` 属性。