gpt4 book ai didi

javascript - 在第二个提取请求中使用提取响应

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

我有一个带有两个获取请求的函数。第一个获取请求返回一个包含 ACCTNO 的对象数组。我试图使用返回的 ACCTNO 是第二个请求。但是我没有取得任何成功。我还尝试引用 this.state.buildUrl,因为我需要 buildUrl 在 View 中呈现,但我收到错误消息说 this.setState 不是函数或未定义。如何在第二个请求中使用第一个获取响应?

  componentDidMount() {


var url = 'http://10.0.2.2:8080/combined';
var result = fetch(url, {
method: 'get',
}).then(function(response) {
return response.json();
}).then(function(data) {
var ACCTNO = data[0].ACCOUNT;

var FormData = require('form-data');
var form = new FormData();
form.append('businessId', '123456');
form.append('login', 'SAFConnectUser');
form.append('password', '123445678');
form.append('billingAccountNumber', ACCTNO);
form.append('signOffURL', 'fd');
form.append('timeOutURL', 'fd');

fetch('https://collectpay-uat.princetonecom.com/otp/namevaluepair/submitSingleSignOn.do', {

method: 'POST',

body: form
}).then((response) => response.text()).then((res) => {
if (res.error) {
console.log(res.error)
}

console.log(res)


var fields = res.split('|');

var getUrl = fields[3];
var buildUrl = getUrl.slice(14)


// Getting error that setState is not a function?
this.setState({buildUrl})


console.log(buildUrl)
console.log(ACCTNO)

})

})

}






render() {



return (
<WebView
source={{uri: this.state.buildUrl}}
style={{marginTop: 20}}
/>

);
}
}

export default acidirect;

最佳答案

将所有函数更改为粗箭头函数,以便它们可以引用this:

class acidirect {
componentDidMount() {
fetch('http://10.0.2.2:8080/combined', {
method: 'get',
})
.then(response => response.json())
.then(data => {
var ACCTNO = data[0].ACCOUNT;
var FormData = require('form-data');
var form = new FormData();
form.append('businessId', '123456');
form.append('login', 'SAFConnectUser');
form.append('password', '123445678');
form.append('billingAccountNumber', ACCTNO);
form.append('signOffURL', 'fd');
form.append('timeOutURL', 'fd');

fetch('https://collectpay-uat.princetonecom.com/otp/namevaluepair/submitSingleSignOn.do', {
method: 'POST',
body: form
})
.then(response => response.text())
.then(res => {
var fields = res.split('|');
var getUrl = fields[3];
var buildUrl = getUrl.slice(14);
this.setState({buildUrl});
});
});
}

render() {
return (
<WebView
source={{uri: this.state.buildUrl}}
style={{marginTop: 20}}
/>
);
}
}

export default acidirect;

关于javascript - 在第二个提取请求中使用提取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44270121/

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