我有一个反应本机应用程序,它使用很多提取请求。这些请求工作得很好,但是我现在试图将所有获取请求移到一个文件中,然后将它们导入到我的类中。
问题:我不知道如何正确执行此操作。基本上,我可以从类中调用fetch方法,但是我不知道如何基于成功或失败来使用它。参见示例:
import stuff...
import { FetchRequest } from ...
class Home extends Component {
constructor(props) {
...
}
_fetch() {
FetchRequest();
}
_onSuccess() {
alert('success!');
}
_onFailure() {
alert('failure!');
}
render() {
return <Button onPress={this._fetch} />
}
}
FetchRequest看起来像这样:
import { Url } from ...
export const FetchRequest = function () {
fetch(Url)
.then((response) => response.json())
.then((responseJson) => {
if (responseJson.status == 'success') {
return 'success';
}
else {
return 'failure';
}
})
.catch((error) => {
alert('Error!');
});
};
如您所见,我可以轻松触发警报,还可以返回不知道如何使用的字符串。基本上,如果FetchRequest成功,我想调用_onSuccess方法;如果FetchRequest不成功,我想调用_onFailure方法。有没有办法做到这一点?
最佳答案
您可以通过将onSuccess和onFailure回调发送到FetchRequest函数来实现。
更改FetchRequest,如下所示:
import { Url } from ...
export const FetchRequest = function (_onSuccess, _onFailure) {
fetch(Url)
.then((response) => response.json())
.then((responseJson) => {
if (responseJson.status == 'success') {
_onSuccess(responseJson);
}
else {
_onFailure(responseJson);
}
})
.catch((error) => {
alert('Error!');
});
};
您现在可以将其用作:
import stuff...
import { FetchRequest } from ...
class Home extends Component {
constructor(props) {
...
}
_fetch() {
FetchRequest(this._onSuccess, this._onFailure);
}
_onSuccess(responseJson) {
// Do something with the response
alert('success!');
}
_onFailure(responseJson) {
// Show the failed result
alert('failure!');
}
render() {
return <Button onPress={this._fetch} />
}
}
关于javascript - 导入提取请求?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48488393/