javascript - react-native 项目中的“类型错误:_jquery2.default.ajax 不是函数”
问题描述
我正在尝试使用 jQuery 从内部网站中提取 xml 数据。我有一个基本的世博项目设置,如下所示:
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import $ from 'jquery';
import {XML_DATA_URL} from './src/api/constants';
export default class App extends React.Component {
fetchData = () => {
return $.ajax({
url: XML_DATA_URL,
dataType: 'xml',
});
}
render() {
let response = 'test';
response = this.fetchQviewData();
console.log(response);
return (
<View >
<Text>Open up App.js to start working on your app!</Text>
</View>
);
}
}
当我运行此代码时,我收到错误"TypeError: _jquery2.default.ajax is not a function"。这是我的 package.json 的样子:
{
"name": "empty-project-template",
"main": "node_modules/expo/AppEntry.js",
"private": true,
"scripts": {
"start": "exp start --lan",
"android": "exp start --lan --android",
"ios": "exp start --ios",
"eject": "exp eject"
},
"dependencies": {
"expo": "^29.0.0",
"jquery": "3.1.1",
"react": "16.3.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-
29.0.0.tar.gz",
"yarn": "^1.9.4"
}
}
我的环境是视觉工作室代码,当我将鼠标悬停在函数上时,我可以看到原型:
我错过了什么吗?谢谢。
解决方案
我想我在这篇文章中找到了答案,问题似乎是因为 react-native 使用虚拟 DOM,并且没有实际的 html 或 css,所以 jQuery 将无法工作,因为它需要访问 DOM。
推荐阅读
- r - 在r中的几个目录中读取多个csv文件
- java - 应用程序未在 Tomcat 9.0.12 中启动
- android - null 不能转换为非 null 类型 android.support.v4.view.ViewPager - KOTLIN
- python - 如何并行运行带有参数的python脚本实例?
- unit-testing - 如何使用 with-redefs 模拟对同一函数的多个调用?
- xss - 跨站点脚本验证不良 ESAPI + JSF Fortify
- python - 如何根据一组 k 最近邻计算平均值?
- php - 如何从另一个类调用一个类中的函数?卷曲
- python-3.x - 保存用户对机器人提出的问题的回答。
- python - 使用 Python SDK 导出数据