如何将item添加到现有数组中而不影响React中的当前数组



我有一个带有复选框的列表项,每当用户单击复选框时,它应该将该复选框的值添加到2个数组中,但目前只有一个添加值,第二个不断替换值,这是我的代码

const handleToggle = (value) => () => {
const checked = books_numbers
let params = []
const currentIndex = checked.indexOf(value.value)

const newChecked = [...checked]
const newParams = [...params]

if (currentIndex === -1) {
newChecked.push(value.value)
newParams.push(value.params)
} else {
newChecked.splice(currentIndex, 1)
}
}

所以checked数组工作得很好,当用户选中方框时,它会添加值,当用户取消选中方框时,它会从数组中删除该值。

然而,params不起作用,当用户选中框(假设框的值是1,2)时,它会将该值添加到params中,但如果他选中另一个框(假设另一本书的值是3,4),params数组将只包含3,4而不包括1,2,选中两个框应该将两个框的值添加到数组

我已经尝试过扩展操作符,如在代码中所见,它没有工作,有人能告诉我这里出了什么问题,或者我如何解决这个问题吗?

每次调用该函数时,都要重新创建params。在函数

之外初始化它
let params = []
const handleToggle = (value) => () => {
const checked = books_numbers
//... rest of code
}

相关内容

最新更新