Розуміння Invalidators в React
Invalidator — це об’єкт JavaScript, який дозволяє зробити недійсним (або скинути) стан компонента React. Коли стан компонента стає недійсним, React повторно відтворить компонент з оновленим станом.
Іншими словами, засіб недійсності – це спосіб повідомити React, що стан компонента змінився та потребує повторного відтворення.
Ось деякі типові випадки використання для недійсних засобів:
1. Коли дані змінюються: якщо дані, які відтворює компонент, змінюються, ви можете використовувати інструмент недійсності, щоб сказати React повторно відобразити компонент з оновленими даними.
2. Коли проп змінюється: якщо пропс компонента змінюється, ви можете використовувати засіб недійсності, щоб сказати React повторно відобразити компонент із новими пропсами.
3. Коли зміна стану не викликана зміною атрибутів: іноді вам може знадобитися повторно відобразити компонент, навіть якщо його атрибути не змінилися. Наприклад, якщо ви використовуєте змінну стану для відстеження кількості елементів у списку, а користувач додає або видаляє елементи, ви можете використовувати засіб недійсності, щоб наказати React повторно відобразити компонент з оновленим станом.
4. Коли компонент демонтовано: якщо компонент демонтовано (тобто вилучено з DOM), ви можете використовувати інструмент недійсності, щоб наказати React очистити будь-які ресурси, які використовував компонент.
Інвалідатори зазвичай реалізуються як функції, які повертають логічне значення вказує, чи змінився стан компонента. Ось приклад того, як ви можете використовувати засіб недійсності в компоненті React:
```
class Counter extends React.Component {
state = { count: 0 };
invalidator = () => {
return this.state. count !== this.lastCount;
};
handleAdd = () => {
this.lastCount = this.state.count;
this.setState({ count: this.state.count + 1 });
} ;
render() {
return (
Count: {this.state.count}
);
}
}
```
У цьому прикладі функція `invalidator` повертає `true`, якщо стан компонента змінився, і `false` в іншому випадку. Функція `handleAdd` оновлює стан компонента, встановлюючи `lastCount` на поточний лічильник, а потім оновлюючи `count` стан новим значенням. Коли компонент повторно рендериться, React викличе функцію `invalidator`, щоб перевірити, чи змінився стан, і якщо так, він повторно рендерить компонент з оновленим станом.



