2016-08-09 63 views
0

Ich habe eine React/Redux App und eine Komponente.Zugriff auf Component-Methode von außerhalb der React App

Leider muss ich eine Drittanbieter-Bibliothek verwenden, die Funktionen aus der React App auslösen muss.

class Account extends React.Component { 
    doSomething(){ 
    // Do react things 
    } 
    render{ 
    return() 
    } 
} 

Und jetzt habe ich einige HTML, die ich habe die Kontrolle über, in das DOM eingefügt. Dies ist kein iFrame.

<button onClick="doSomething()">interact with react</button> 

Gibt es eine Möglichkeit, die doSomething() Methode von außerhalb Reagieren auslösen kann? Etwas wie ReactApp.Account.doSomething() ist was ich brauche.

+0

Überprüfen Sie diese Frage http://stackoverflow.com/questions/31612598/call-a-react-component-method-from-outside –

Antwort

0

Wenn ich Sie richtig verstehe, ist der richtige Weg, um zu tun, was Sie wollen in React/Redux App ist neue Aktion an den Laden zu verschicken und registrieren Sie Ihre gleichmäßige Handhabung entsprechend.

<button onClick="store.dispatch(createAction())">interact with react</button> 

Versuchen Sie nicht, einen Weg zu finden, um innerhalb von React-Komponenten zu "hacken", es sei denn, Sie müssen. Da Sie bereits ein Flux-ähnliches Muster haben, wäre es schlecht, es zu ignorieren. Auch diese Methode scheint etwas komplizierter zu sein, wie @Kovensky im Kommentar erwähnt.

+1

Wenn er einen Bundler verwendet, kann 'store' oder' createAction' nicht als verfügbar sein Globals. Er sollte eine Funktion in "window" definieren, die vom "onclick" aufgerufen wird und die den Versand übernimmt. – Kovensky