Реагировать Контекст для события - PullRequest
0 голосов
/ 28 февраля 2020

У меня следующий контекст:

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 данные пользователя в родительском компоненте, когда один из многих глубоко вложенных подкомпонентов изменяет пользователь. Например, пользователь может удалить другого пользователя, щелкнув правой кнопкой мыши и выбрав «Удалить пользователя» в пользовательском меню правой кнопки мыши, или он может нажать кнопку удаления. Проблема в том, что родительский элемент пользовательского меню правой кнопки мыши также должен прослушивать удаления, чтобы пользовательское меню правой кнопки мыши закрывалось при удалении. У меня вопрос, должен ли я сохранять источник событий в пользовательском контексте или есть какой-то другой способ, который я не рассмотрел.

1 Ответ

0 голосов
/ 03 марта 2020

Да, вы можете хранить свои функции в контексте. Если ссылки на ваши функции никогда не меняются после инициализации, вы также можете экспортировать / импортировать их в любой компонент, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...