У меня следующий контекст:
import React from 'react';
import { createContext } from "react";
type UserModifcationContextType = {
onEdit?: (objectId: number) => void;
onDelete?: (objectId: number) => void;
};
export const UserModificationContext = createContext<UserModifcationContextType>({
onDelete: undefined,
onEdit: undefined
});
export const UserModificationContextProvider: React.FC<UserModifcationContextType> = ({
onDelete,
onEdit
}) => {
return (<UserModificationContext.Provider value={{ onDelete, onEdit }
} />
);
}
Причина, по которой я это использую, заключается в том, что мне нужно обновить sh данные пользователя в родительском компоненте, когда один из многих глубоко вложенных подкомпонентов изменяет пользователь. Например, пользователь может удалить другого пользователя, щелкнув правой кнопкой мыши и выбрав «Удалить пользователя» в пользовательском меню правой кнопки мыши, или он может нажать кнопку удаления. Проблема в том, что родительский элемент пользовательского меню правой кнопки мыши также должен прослушивать удаления, чтобы пользовательское меню правой кнопки мыши закрывалось при удалении. У меня вопрос, должен ли я сохранять источник событий в пользовательском контексте или есть какой-то другой способ, который я не рассмотрел.