gpt4 book ai didi

javascript - React slice() 使用 immer 进行突变转换

转载 作者:行者123 更新时间:2023-12-02 23:01:34 27 4
gpt4 key购买 nike

我在将这段代码转换为不发生变异时遇到问题。

我尝试过使用 immer,但我是新的 React 和 js

handleChange(nextField) {
const { selectedIndex } = this.state
const bookCopy = this.props.value.book.slice()

bookCopy[selectedIndex].field_book_notes = nextField
const nextValue = {
...this.props.value,
books: bookCopy,
}
this.props.onChange(nextValue)
}

有人建议我使用 immer 来解决突变问题。我已经到目前为止,但不知道如何处理 nextValue = { ...this.props.value, 书籍:bookCopy,......等等

handleChange(nextField) {
const { selectedIndex } = this.state
const bookCopy = product(this.props.value.book) => {

bookCopy[selectedIndex].field_book_notes = nextField

......

最佳答案

如果您不想改变初始数组 this.props.value.book 您应该使用 map

试试这个

handleChange(nextField) {
const { selectedIndex } = this.state;
const nextValue = {
...this.props.value,
books: this.props.value.book.map((el, index) => {
if (index !== selectedIndex) return el;
return {
...el,
field_book_notes: nextField
}
}),
}
this.props.onChange(nextValue)
}

关于javascript - React slice() 使用 immer 进行突变转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com