ITS

1. Bug.

Мне не нравится идея передавать подписку на событие в props, слишком усложнено Если компоненту принципиально прослушивать событие, то его надо сделать глобальным и тогда компонент при любой вложенности на него отреагирует

Если все может происходить внутри компонента, то тогда или добавляем его на конкретную страницу и используем или регестрируем компонент глобально и можем использовать его уже где угодно без необходимости импорта

Так же можно глобально зарегестрировать компонент, который прослушивает событие на глобальном уровне

2. Refactor.

описание в комментариях

3. Feature.

Возможно вызов функции надо было обрабатывать с помощью операции apply