я хочу получить доступ к опоре в поставщике, которая передается в ловушку use с помощью реакции и машинописного текста?
что я пытаюсь сделать?
в компоненте Home я передаю isOpen и значения isOwner для DialogRequest, как показано ниже,
function Home() {
const onAdd = () => {
DialogRequest({
isOpen: true,
isOwner: true,
});
};
return (
// Some jsx
)
}
interface DialogRequestProps {
isOpen: boolean;
isOwner: boolean | null;
}
interface Props extends DialogRequestProps {
showDialog: boolean;
onHide: any;
}
function Dialog({ isOwner, showDialog, onHide }: Props) {
return showDialog && <Fragment>//some jsx</Fragment>;
}
interface ContextProps {
setDialogOpen?: (open: boolean) => void;
}
const DialogContext = React.createContext < ContextProps > {};
export const DialogProvider = ({ children }: any) => {
const [showDialog, setShowDialog] = React.useState(false);
const onHide = () => {
setDialogOpen(false);
};
const setDialogOpen = (open: boolean) => {
if (open) {
const sessionDialogClosed = sessionStorage.getItem('dialog');
if (sessionDialogClosed !== 'closed') {
setShowDialog(open);
sessionStorage.setItem('dialog', 'closed');
}
} else {
setShowDialog(open);
}
};
return (
<DialogContext.Provider value={{ setDialogOpen }}>
{children}
<Dialog
onHide={onHide}
showDialog={showDialog}
//want to pass isOwner and isOpen props here but how do i access them here that were
//passed in Home Component ????
/>
</DialogContext.Provider>
);
};
export function useDialog() {
const DialogContext = React.useContext(DialogContext);
return function DialogRequest(opts: DialogRequestOpts) {
if (DialogContext && DialogContext.setDialogOpen) {
DialogContext.setDialogOpen(opts.open);
}
};
}
Как видно из приведенного выше кода, я передаю isOwner и isOpen методу DialogRequest в Homecomponent
Я хочу получить доступ к нему в DialogProvider, а не уверен, как это сделать.
Я хочу передать свойства isOwner и isOpen компоненту Dialog в DialogProvider, который передается из компонента Home.
Может ли кто-нибудь помочь мне с этим. спасибо.