zie*_*lah 0 javascript dom-events reactjs
我有一个如下所示的反应应用程序:我有一个按钮,单击它时它将打开一个弹出窗口,其中包含要打印的票证,单击处理程序从父组件传递到按钮,我希望完成相同的过程在父组件内部
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} />
}
}
Run Code Online (Sandbox Code Playgroud)
和
const Printer = ({printTicket, id}) => {
const clickHandler = () => printTicket(id)
return (
<button onClick={clickHandler}>print</button>
)
}
Run Code Online (Sandbox Code Playgroud)
问题是,当单击 Printer 组件中的按钮时,窗口会按预期打开,但是当从父组件调用 openWindow 单击处理程序时,什么也没有发生!
我检查了 chrome devtools 中的代码,该函数被调用,但弹出窗口未打开。
编辑 更多说明: 1- 该按钮打开一个带有票据的弹出窗口并打印它 2- 用户可以通过此按钮打印票据 3- 提交付款后,票据应自动打印