2017-04-21 3 views
0

Ich habe eine Reaktion Anwendung, die so aussieht: Ich habe eine Schaltfläche, wenn es angeklickt wird, wird ein Popup mit einem Ticket zum Drucken geöffnet, der Click-Handler wird übergeben eine übergeordnete Komponente auf die Schaltfläche, und ich möchte das gleiche Verfahren innerhalb der übergeordneten Komponentewindow.open() arbeite nicht in react application

export default class ParentComponent extends Component { 
    openWindow = id => { 
    window.open('/service/ticket/' + id + '/print') 
    } 

    submitPayment =() => { 
    sendPayment(this.state.rawCommand.id, updatedCommand.payment) 
     .then(payment => { 
     if (payment.needed > 0) { 
      toastr.success(dictionnary.acceptedPayment) 
     } else { 
      toastr.success(dictionnary.payee) 
      this.openWindow(updatedCommand.id) 
     } 
     } 

    render() { 
    <Printer printTicket={this.openWindow} /> 
    } 
} 

und

const Printer = ({printTicket, id}) => { 
    const clickHandler =() => printTicket(id) 

    return (
    <button onClick={clickHandler}>print</button> 
) 
} 

das Problem ist, wenn die Schaltfläche in der Druckerkomponente wird das Fenster geklickt getan wird geöffnet wie erwartet, aber wenn der OpenWindow-Click-Handler von Par aufgerufen wird Ent Komponente ist nichts passiert!

Ich inspizierte den Code in Chrome Devtools und die Funktion wird aufgerufen, aber das Popup öffnet nicht.

bearbeiten Weitere Erklärung: 1- Sie die Taste ein Popup mit einem Ticket öffnet und ausdrucken 2- der Benutzer ein Ticket über diese Taste 3- nach einer Zahlung einreichen das Ticket sollte automatisch ausgedruckt drucken

+0

Ich würde erwarten, eine ReferenceError für 'commandId' auf der Konsole mit diesem Code zu sehen. – Quentin

+0

es ist ein Tippfehler in der Frage nur danke! –

+0

Wie rufen Sie 'submitPayment' auf? – Pineda

Antwort

2

Ich fand die Lösung es geht um Google Chrome: Es blockiert das Popup !!!

Verwandte Themen