sách gpt4 ai đã đi

javascript - 数组内对象的属性更改的 react 性

In lại 作者:行者123 更新时间:2023-12-04 17:30:15 29 4
mua khóa gpt4 Nike

当我更新数组内对象的属性然后作为组件的 Prop 传递时,在 svelte 中触发 react 性的正确方法是什么?

let items = [{
id: 1,
name: 'first'
}, {
id: 2,
name: 'second'
}];

function findItem(id) {
return items.find(item => item.id == id);
}

function modifyItem(id, changedProps) {
let item = findItem(id);
if(item) {
Object.assign(item, changedProps);
items = [...items]; // this does nothing
console.log(items); // correctly displays the modified items array
}
}

// ...



所以我要传我的 modifyItem功能。然后子组件调用它并想要更新 items大批。这工作得很好,但没有触发 react 性(我假设是因为 svelte 无法识别数组中的对象已被修改)所以 MyList永远不会重新渲染。

这样做的“正确”/“正确”方式是什么? .map好像有点低效整个数组只是为了创建对象的新实例并将其插入。还有其他方式吗?非常感谢!

1 Câu trả lời

它应该工作。这是一个工作示例。作为数组中项目属性的计数器按预期递增。

App.svelte:


import DisplayCounter from "./DisplayCounter.svelte";
let items = [{text: 'hello', count: 0}];

function incrementCounter() {
items[0].count++;
items = [...items];
}





DisplayCounter.svelte:

export let items = []


{items[0].count}


这是 REPL: https://svelte.dev/repl/9c20112f09284ba983bf598012705c56?version=3.19.1

关于javascript - 数组内对象的属性更改的 react 性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60416026/

29 4 0
Bài viết được đề xuất: file-upload - Next.js & Ant Design Dragr : File upload fails on deployed instance
Bài viết được đề xuất: pdf - 使用 Solr 用页码索引 PDF
Bài viết được đề xuất: regex - 如何在 F# 中创建从 A 到 Z 的列表
Bài viết được đề xuất: ruby - 如何 cgi 转义 ruby 凭据
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com