Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

react-native填坑-fetch相关

$
0
0

相关背景

本人学生,最近在做安卓的作业,使用了React-Native进行开发。需要实现的效果是在安卓本地实现爬虫,爬取网页,进行解析。

与在PC端爬取数据是类似的,都是先读取html,在使用工具解析。 我在这里使用的是:

  • 网络: React-Native自带的fetch
  • html解析 : cheerio-without-node-native(由于cheerio部分依赖js在PC上的IO操作,具体是哪部分代码忘了,不能够在安卓端使用,所以需要纯js实现的cheerio,这个包就很好。)

我主要遇到的问题是

在开发过程中,当使用到fetch的json方法或者text方法,有时候就会出现这样的问题.

fetch('http://www.fitnes.cn/jianshen')
.then(res => { return res.blob(); })
.then(blobs => {
  }

遇到的问题

我的解决方法是查阅了相关资料后,我的解决方法是: 使用axios,axios是封装了XMLHttpRequests ,这个对象在react-native中同样存在,使用axios会比fetch稳定许多。

另外还有一点就是,如果非要使用fetch,注意区分fetch的浏览器方法和react-native中提供的方法。例如blob就是only浏览器提供的方法,在非远程调试模式下,使用也会报上面的错。

在调试模式下能使用很多非react-native的浏览器方法,我猜想这是因为开启远程调试后,浏览器的全局变量对react-native上的变量造成了污染,所以在远程调试中能使用很多浏览器方法,非常神奇!

这个问题的 github issue

可能我说的也有错,欢迎大家指正


Viewing all articles
Browse latest Browse all 14821

Trending Articles