首页 > 解决方案 > 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"
  }
}

我的环境是视觉工作室代码,当我将鼠标悬停在函数上时,我可以看到原型:

在此处输入图像描述

我错过了什么吗?谢谢。

标签: javascriptreactjsreact-native

解决方案


我想我在这篇文章中找到了答案,问题似乎是因为 react-native 使用虚拟 DOM,并且没有实际的 html 或 css,所以 jQuery 将无法工作,因为它需要访问 DOM。


推荐阅读