Javascript React Native-fetch不';我好像没开枪
Fetch似乎没有启动-这是我在React Native中的组件:Javascript React Native-fetch不';我好像没开枪,javascript,reactjs,react-native,fetch,Javascript,Reactjs,React Native,Fetch,Fetch似乎没有启动-这是我在React Native中的组件: import { Button } from 'react-native'; export function Test() { function submit() { console.log('submit'); fetch('https://swapi.co/api/people/1/').then( res => { console.log('res', res);
import { Button } from 'react-native';
export function Test() {
function submit() {
console.log('submit');
fetch('https://swapi.co/api/people/1/').then(
res => {
console.log('res', res);
return res.json();
},
err => console.log('err', err)
).then(
res => console.log('res', res)
).catch(
err => console.log('catch', err)
).finally(
res => console.log('finally', res)
);
console.log('after');
}
return (
<Button
title="Test"
onPress={submit}
/>
);
}
我也尝试了Axios
,结果是一样的
这个问题在Android和IOS上都会发生
编辑 刚刚尝试使用
XMLHttpRequest
api,再次尝试使用submit
日志:
function submit() {
console.log('submit');
var request = new XMLHttpRequest();
request.onreadystatechange = (e) => {
console.log('ready', e);
if (request.readyState !== 4) {
return;
}
if (request.status === 200) {
console.log('success', request.responseText);
} else {
console.warn('error');
}
};
request.open('GET', 'https://swapi.co/api/people/1/');
request.send();
}
怎么样onPress={()=>this.submit()}
原始代码
function submit() {
console.log('submit');
fetch('https://swapi.co/api/people/1/').then(
res => {
console.log('res', res);
return res.json();
},
err => console.log('err', err)
).then(
res => console.log('res', res)
).catch(
err => console.log('catch', err)
).finally(
res => console.log('finally', res)
);
console.log('after');
}
修改如下
async function submit() {
console.log('submit');
await fetch('https://swapi.co/api/people/1/')
.then(res => res.json())
.then(resJson => console.log('res ', resJson))
.catch(err => console.log('catch ', err))
.finally(() => console.log('finally'));
console.log('after');
}
因此,控制台中将显示以下结果:
submit
res {name: "Luke Skywalker", height: "172", mass: "77", hair_color: "blond", skin_color: "fair", …}
finally
after
请尝试
而不是onPress
onPress
是正确的道具:-但无论函数如何调用,我都在寻找有关如何获取工作的见解…您是否在日志中看到提交?@behzad yeah,只有submit
logsCan您使用axios并重试?onPress
是正确的道具:-无论如何调用submit
函数,问题是fetch
似乎不会触发此。submit
未定义,因为它是一个功能组件,因此只有onPress={()=>submit()}
是正确的。
submit
res {name: "Luke Skywalker", height: "172", mass: "77", hair_color: "blond", skin_color: "fair", …}
finally
after