У меня есть статья, которая представляет собой объект mobx-state-tree, и я использую ее в приложении для реагирования.
Это действие внутри моего дерева
setId(id: string) {
self.id = id
this.updateProduct()
},
И событие
<input
value={comp.productId}
onChange={(e) => comp.setId(e.target.value)}
/>
Проблема в том, что this.updateProduct()
запускается при каждом изменении и выполняет асинхронный вызов после каждого нажатия клавиши.
Я хотел бы воспользоваться реакциями mobx и использовать что-то вроде
reaction(
() => ({
id: this.id
}),
() => {
this.updateProduct()
}, {
delay: 500 // this is the key thing
})
Я обнаружил, что в таких случаях задержка очень полезна, поэтому я хотел бы использовать их внутри дерева.
Это хорошая практика - добавлять реакции внутри дерева состояний mobx? Если да, то где лучше всего использовать реакции?
Я могу определить реакцию внутри компонента реакции, но для них это будет вне дерева. Хорошая практика - находиться вне дерева?