Я новичок в Svelte, поэтому подозреваю, что это очень фундаментальная проблема непонимания.
Может кто-нибудь объяснить, почему on: click обновляет пользовательский интерфейс, но пользовательский интерфейс не обновляется, если я попытаться использовать changeJob (items)? В console.log указано, что все задания были изменены в массиве, но пользовательский интерфейс не отражает этого.
<script>
import ListItem from './ListItem.svelte';
let items = [
{ name: 'John', age: 23, job: 'plumber'},
{ name: 'Jane', age: 45, job: 'hair stylist'},
{ name: 'Juan', age: 18, job: 'student'},
];
const changeJob = (arr) => {
console.log(arr[0].job);
arr[0].job = 'clown';
console.log(arr[0].job);
}
</script>
<button on:click={() => items[0].job = 'clown'}>Clownify</button>
<ul>
{#each items as item }
<ListItem {...item}/>
{/each}
</ul>
Фрагмент кода: REPL