У меня есть Chart
компонент, который состоит из Cell
компонентов. И Chart
, и Cells
используют useContext
хуки, и я предоставляю этот контекст во внешнем слое. Я хочу создать новую диаграмму, которая похожа, но использует другой контекст. Например, исходная диаграмма хранит и ищет информацию на основе разных ключей: когда я заполняю исходный контекст, он выглядит следующим образом: {'player 1': [], 'player 2': [], 'player 3' ...}
, но новый контекст будет выглядеть следующим образом: {'You': [], 'Your opponent': []}
Должен ли я передать параметр / флаг компоненту Chart
, который сообщает ему, какой контекст использовать? И тогда я мог бы сделать что-то вроде: const [selectedCombos, handleSelectedDispatch] = usePlayers ? useContext(OriginalContext) : useContext(OtherContext)
Могу ли я сделать что-то подобное? Я знаю, что он плохо пахнет, но единственная альтернатива, которую я вижу, - это копирование компонентов Chart
/ Cell
в новый файл, изменение используемого им контекста и переименование. Это тоже отстой. Какой правильный подход здесь?
Я пытался просто скопировать код в новый компонент и использовать другой контекст, но это тоже воняет.