javascript - antdesign底层弹出个confirmModal。怎么获取底层的this?
本文介绍了javascript - antdesign底层弹出个confirmModal。怎么获取底层的this?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
showConfirm() {//弹出确认对话框
confirm({
title: '当前总计应收金额为'+this.state.allReceivablePrice+'元',//这里能得到值!!!!
// content: 'some descriptions',
okText: '确认回款',
cancelText: '取消',
onOk() {
const {allSelectOrder}=this.state;
if (allSelectOrder.length==0){
message.error('订单Id不能为空');
return;
}else {
this.setState({loading: true});
$.ajax({
url: API.flow,
type: 'post',
dataType: 'json',
data: JSON.stringify(allSelectOrder),
contentType: 'application/json;charset=UTF-8',
success: ()=> {
this.setState({
loading: false,
});
message.success('添加收款记录成功!');
this.refreshData();
},
error: (data)=> {
Modal.error({
title: data.responseJSON.msg
});
this.setState({ loading: false });
}
})
}
},
onCancel() {
},
});
},
这个this我怎么获取不到呢,都加了bind了
报错:
PaymentCollection.jsx:329 Uncaught TypeError: Cannot read property 'state' of undefined
解决方案
你ajax的success和error都没有bind。注意看报错信息的位置。
showConfirm() {//弹出确认对话框
confirm({
title: '当前总计应收金额为'+this.state.allReceivablePrice+'元',//这里能得到值!!!!
// content: 'some descriptions',
okText: '确认回款',
cancelText: '取消',
onOk: () => {
const {allSelectOrder}=this.state;
if (allSelectOrder.length==0){
message.error('订单Id不能为空');
return;
}else {
this.setState({loading: true});
$.ajax({
url: API.flow,
type: 'post',
dataType: 'json',
data: JSON.stringify(allSelectOrder),
contentType: 'application/json;charset=UTF-8',
success: ()=> {
this.setState({
loading: false,
});
message.success('添加收款记录成功!');
this.refreshData();
},
error: (data)=> {
Modal.error({
title: data.responseJSON.msg
});
this.setState({ loading: false });
}
})
}
},
onCancel() {
},
});
},
准确来说是onOk函数的this环境已经丢失了。;
这篇关于javascript - antdesign底层弹出个confirmModal。怎么获取底层的this?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文