我有一个保存页面的链接。
<Link
onClick={this.savePDF}
button="secondary" >
Save as PDF
</Link>
我有一个正在重复使用的保存功能
save = (page) => () => {
this.props.toggleSaving();
this.props.savePage(page);
this.props.toggleSaving();
};
savePDF = (page) => {
this.props.toggleSaving();
this.props.savePage(page);
this.props.toggleSaving();
window.open(`${window.location.pathname}/print`, '_blank');
};
这适合我,但是当我尝试这样做时。
savePDF = (page) => {
this.save(page);
window.open(`${window.location.pathname}/print`, '_blank');
};
虽然它打开了打印页面但它不会触发this.save()
。
我如何组织它以减少代码重复。
答案 0 :(得分:2)
save
函数在您调用它时会返回一个新函数,如
this.save(page);
我认为没有必要在这里返回一个新功能。你可以简单地定义这样的函数,这将起作用
save = (page) => {
this.props.toggleSaving();
this.props.savePage(page);
this.props.toggleSaving();
};
// And then calling it like this will work
this.save(page);