Как изменить реквизиты компонента React в компоненте Angular?

У меня есть проблема - я создал компонент React, который делает модальным изменение базы данных из списка. И в проекте, над которым я работаю, есть старый компонент Angular, который представляет собой кнопку для вызова этого модального React.

В моем реагирующем модале у меня есть несколько полей:

export interface ConnectedDatabaseModalState {
list,
isLoading,
selected,
isDatabaseLoading,
visible
}

После загрузки страницы для параметра visible установлено значение true, когда я выбираю базу данных, есть способ скрыть модальность:

    hide() {
    this.setState({
        visible: false,
        isDatabaseLoading: false
    })
}

Таким образом, модальное окно не уничтожается, оно просто скрыто. В моем угловом компоненте я хочу снова изменить visible на true, но я не знаю, как это сделать:

export class SelectDatabaseButtonComponent extends BasicComponent implements OnInit {
@Input() openDbModalFn: any;

selectDatabase$ = new Subject();
database: Database;


constructor(private store: Store<AppState>, private cdr: ChangeDetectorRef) {
    super();
}

ngOnInit() {
    this.selectDatabase$.pipe(takeUntil(this.componentDestroyed$)).subscribe(response => {
        //TODO open modal here
    });

    this.subscriptions.add(
        this.store
            .pipe(
                select(selectSelectedDatabase),
                tap((database) => {
                    this.database = database;
                    this.cdr.detectChanges();
                })
            ).subscribe()
    )
}
}

И шаблон:

<button type = "button" id = "modalButton" class = "btn btn-primary btn-sm" (click) = "selectDatabase$.next()">
{{ (database?.description) || "Undefined"}}

Кто-нибудь может мне помочь? А также скажите мне, хорошо ли менять свойства реактивного компонента в угловом компоненте?

Что я хочу сделать, так это вызвать метод из реагирующего компонента:

show() {
    this.setState({
        visible: true
    })
}

В компоненте Angular на месте //TODO

Есть только несвязанные фрагменты. Как связаны компоненты Angular и React? Пожалуйста, предоставьте stackoverflow.com/help/mcve для вашей проблемы. Они должны быть как-то связаны, иначе вы не сможете этого сделать.

Estus Flask 13.03.2019 11:35

Отредактированный вопрос: я хочу вызвать метод из компонента реакции в угловом компоненте

Dominik Z 13.03.2019 11:54

Опять же, это полностью зависит от того, как связаны эти два компонента. На вопрос нельзя ответить, не объяснив это. MCVE требуется для вопросов, связанных с кодом, в противном случае. они считаются не по теме и могут быть закрыты.

Estus Flask 13.03.2019 12:42

Эти компоненты не связаны. Modal (компонент React) является частью всего приложения, его можно открыть во многих представлениях. Кнопка принадлежит только одной странице просмотра. Или, может быть, я не понимаю Вашего вопроса об отношениях между ними.

Dominik Z 13.03.2019 12:47

Вам нужно как-то связать их. Либо приложение Angular вызывает React.render, либо приложение React вызывает Angular bootstrap, поэтому вы можете передать обратный вызов или модальный экземпляр или что-то в этом роде. Таким образом, вы можете общаться между ними. Так это обычно делается. В противном случае вам нужно будет общаться через глобальные переменные, такие как window события.

Estus Flask 13.03.2019 12:51

@DominikZ смотри найм: stackoverflow.com/questions/54408694/…

kris_IV 21.05.2019 11:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
195
0

Другие вопросы по теме