Comment réagir à un changement dans la matrice de la matrice?Réaction Mobx sur le sous-réseau change/enlève
var todos = mobx.observable([
{
title: "Make Pasta",
subtasks: [
{ title: 'Pasta' }, { title: 'Salt' },
]
},
{
title: "Make coffee",
subtasks: [
{ title: 'Hot Water' }, { title: 'Milk' },
]
}
]);
const reactionSubtask = mobx.reaction(
() => todos.map(todo => todo.subtasks),
subtasks => console.log("reaction subtasks >", subtasks)
);
const reactionTask = mobx.reaction(
() => todos.map(todo => todo.title),
titles => console.log("reaction title >", titles.join(', '))
);
const resultSubtaskRemove = todos[1].subtasks.remove(todos[1].subtasks[0]);
console.log('Subtask remove result >', resultSubtaskRemove);
const resultSubTaskAdd = todos[1].subtasks.push({title: 'Filter'});
console.log('Subtask add result >', resultSubTaskAdd);
const resultSubTaskChange = todos[1].subtasks[0].title = 'Change titled';
console.log('Subtask change result >', resultSubTaskChange);
<script src="https://unpkg.com/mobx/lib/mobx.umd.js"></script>
La réaction est pas exécutée.
Dans mon cas, j'utilise mobx-react et mes composants React ne sont pas mis à jour lorsque je change de tableau enfants.