React Native Fetch JSON = url为空

时间:2017-08-10 14:11:10

标签: javascript json react-native

我正在开发一个请求JSON API的应用程序(非常简单的应用程序)。让我生气的那段代码是:

fetch("http://xxx/api/v1/samples", {
  method: "GET",
  headers: {
    'Authorization': 'Bearer ' + userToken
  }
}).then((response) => {
  if (response.ok) {
    return response.json();
  }

  throw new Error('error');
}).then((samples) => {
  console.log(samples);
  this.setState({
    data: samples,
    error: samples.error || null,
    loading: false,
    refreshing: false
  });
}).catch((error) => {
  AlertIOS.alert("OOPS", error.message);
});

API返回:

{
  "code": "4345",
  "id": 3,
  "comment": "Echantillon trouvé dans un étang",
  "updated_at": {
    "date": "2017-07-04 11:04:34.000000",
    "timezone_type": 3,
    "timezone": "Europe/Zurich"
  },
  "project_name": "Récolte de Lézards",
  "thumbs": "http://xxx/storage-app-uploads-public-595-e01-893-595e01893c826572100952-8cf6abfd3440f538dfa95b1d581b7487.png",
  "pictures": [
    "http://xxx/storage-app-uploads-public-595-e01-893-595e01893c826572100952-8cf6abfd3440f538dfa95b1d581b7487.png"
  ]
}

我的问题 var"样本"是正确的(包含所有字段; id,代码,注释,...)期望所有url都是空字符串。

console.log(samples)之前this.setState的结果: { "code": "4345", "id": 3, "comment": "Echantillon trouvé dans un étang", "updated_at": { "date": "2017-07-04 11:04:34.000000", "timezone_type": 3, "timezone": "Europe/Zurich" }, "project_name": "Récolte de Lézards", "thumbs": "", "pictures": [ "" ] }

无法找出原因。

有什么想法吗?非常感谢你。

2 个答案:

答案 0 :(得分:0)

samples是一个JavaScript普通对象。如果预期结果是在传递给Array的对象的"data"属性中定义.setState(),请在{{1}设置samples.pictures.concat() samples.thumbs } property。

"data"链接到throw电话中删除.then(),以避免意外结果。

fetch()

答案 1 :(得分:0)

谢谢@YaSH,你是对的。使用HTTPS网址时,字符串不为空...但为什么......我在文档中没有找到任何提及的内容......

@ guest271314:这等于调用fetch的组件。