Я использую mobx-реагировать / mobx-реагировать-lite для управления состоянием
Используя классы, я могу определить ненаблюдаемый idToDelete для хранения идентификатора элемента, по которому щелкнули, открыть модал, используя наблюдаемый, и когдапользователь нажимает «Удалить», я знаю элемент для удаления.Идентификатор «запоминается» компонентом при повторном рендеринге
class Greeting extends React.Component {
idToDelete = null;
confirmDelete = id => {
this.idToDelete = id;
openConfirm = true;
}
closeModal = () => {
openConfirm = true;
this.idToDelete = null;
}
@observable
openConfirm = false;
render() {
// List of items with delete button
<button onClick=this.confirmDelete(id)>Delete</button>
// Confirm Delete Modal
}
}
Но в компоненте без состояния идентификатор становится нулевым (значение инициализации) при каждом повторном рендеринге.
Используя useLocalStore hook, я могу хранить наблюдаемые значения:
Все свойства возвращаемого объекта будут автоматически доступны для наблюдения
Но я не хочу повторнорендеринг только потому, что я храню / изменяю идентификатор.
Использование React.React.createContext / useContext мне кажется немного излишним (это своего рода личное значение, и оно не имеет отношения вне самого компонента)
Есть ли способ «локального хранилища» для этого?(без видимого преобразования)
Каковы лучшие практики для этой ситуации?