У меня есть функциональный компонент, где, если у меня есть ошибка при вызове API, я хочу открыть модальное окно, показывающее эту ошибку. Свойство, определяющее, открыт ли этот модальный экран, сохраняется с помощью контекстного API. Итак, у меня был этот код в компоненте:
const modalContext = useContext(ModalContext);
useEffect(() => {
if (error !== "") {
modalContext.showModal();
}
}, [error]);
Но у меня есть это предупреждение:
React Hook useEffect имеет недостающую зависимость: 'modalContext'. Либо включите его, либо удалите массив зависимостей response-hooks / excustive-deps
Я читал, что для решения этой проблемы я могу использовать refs, поэтому я изменил код и теперь у меня:
const modalContextRef = React.useRef(false);
modalContextRef.current = useContext(ModalContext);
useEffect(() => {
if (error !== "") {
modalContextRef.current.showModal();
}
}, [error]);
Интересно, правильный ли это способ продолжить или это плохая практика.
Спасибо!