2017-04-21 46 views
0

我有一個看起來像這樣的反應應用程序:點擊時有一個按鈕,它將打開一個彈出窗口,打印一張票,點擊處理程序從父組件的按鈕,我想在父組件window.open()在應用程序中不起作用

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} /> 
    } 
} 

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

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

問題是,當在打印機部件的按鈕被點擊打開的窗口內做了同樣的過程如預期的那樣,但是當從par中調用openWindow點擊處理程序時ent組件什麼也沒有發生!

我檢查了鉻devtools中的代碼,並調用了該函數,但彈出窗口未打開。

編輯 更多說明: 1-按鈕打開一個彈出帶票並將其打印 2-用戶可通過該按鈕打印票提交付款票據應automaticaly印刷後 3-

+0

我期望在控制檯上看到一個帶有該代碼的'commandId'的ReferenceError。 – Quentin

+0

這是一個錯字,只是謝謝你! –

+0

你怎麼調用'submitPayment'? – Pineda

回答

2

我找到了關於谷歌Chrome的解決方案:它阻止了彈出窗口!

相關問題