Javascript React Native-fetch不';我好像没开枪

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);

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);
        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