gpt4 book ai didi

javascript - 如何在事件处理函数内部调用函数 react native

转载 作者:行者123 更新时间:2023-12-03 02:01:34 25 4
gpt4 key购买 nike

我实现了这个库https://github.com/elanic-tech/react-native-paytm在我的项目中。我成功收到 Paytm 的回复onPayTmResponse 但现在我想将此响应发送到服务器,但在这个函数内,我无法调用任何函数或声明它给我一个未定义的错误。

componentWillMount() {
if(Platform.OS == 'ios'){
const { RNPayTm } = NativeModules
const emitter = new NativeEventEmitter(RNPayTm)
emitter.addListener('PayTMResponse', this.onPayTmResponse)
}else{
DeviceEventEmitter.addListener('PayTMResponse', this.onPayTmResponse)
}

//this.makeRemoteRequest();
}

onPayTmResponse(response) {
// Process Response
// response.response in case of iOS
// reponse in case of Android

var actual = "";
if(Platform.OS == 'ios'){
actual = JSON.parse(response.response);
}else{
actual = JSON.parse(response);
}

console.log(actual, this.state);

if(actual.RESPCODE == "01"){
// Place Order
placeOrder();
}else{
alert(actual.RESPMSG);
this.setState({loading: false, buttonText: 'Continue'});
}
}

Error

最佳答案

将您的 onPayTmResponse 函数与 componentWillMount 内的此函数绑定(bind),例如

componentWillMount() {
this.onPayTmResponse = this.onPayTmResponse.bind(this); // note: we bind onPayTmResponse with this
if(Platform.OS == 'ios'){
const { RNPayTm } = NativeModules
const emitter = new NativeEventEmitter(RNPayTm)
emitter.addListener('PayTMResponse', this.onPayTmResponse)
}else{
DeviceEventEmitter.addListener('PayTMResponse', this.onPayTmResponse)
}
//this.makeRemoteRequest();
}

现在您应该能够在 onPayTmResponse 中调用 setState。

关于javascript - 如何在事件处理函数内部调用函数 react native ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49992095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com