无法读取未定义的属性“ functionName”

时间:2018-11-09 04:49:53

标签: javascript react-native

我正在一个React Native项目中尝试检索json对象数组。我目前正在像这样使用提取功能:

//*******************    require in root App.js  ***********

global.fetch = require('isomorphic-fetch');


//*******************    API.js    *************************

import fetch from 'isomorphic-fetch';

const api = {
 getData() {
  const url = 'http://.php?route=users';
  return fetch(url).then((res) => res.json());
 }
};

export { api };

//******************    dataRetrieval.js    ********************* 

//imports
import api.js form './filepath.js';

 constructor(props) {
  super(props);
   this.state = {
     email: '',
     password: '',
     error: '',
     loading: false,
     users: []
   };
 }

componentDidMount() {
  api.getData(this).then((res) => {
   this.setState({ users: res.getData });
  });
}

项目依赖项:

"dependencies": {
    "axios": "^0.18.0",
    "eslint-config-rallycoding": "^3.2.0",
    "isomorphic-fetch": "^2.2.1",
    "node-fetch": "^2.2.0",
    "npm": "^6.4.1",
    "react": "16.4.1",
    "react-native": "0.56.0",
    "react-native-fetch": "^2.0.0",
    "react-navigation": "^2.12.1",
    "unfetch": "^3.1.1"
},

当我尝试运行模拟器时,收到一条错误消息,提示我的getData()函数未定义并且无法读取。

2 个答案:

答案 0 :(得分:0)

您错误地使用了导出/导入。

在API.js文件中使用HTML,或者在dataRetrieval.js文件中使用export default api

答案 1 :(得分:0)

然后,在上方添加答案,您应该编写.catch。 这与您的错误无关,但必须养成习惯。

import fetch from 'isomorphic-fetch';

const api = {
getData() {
const url = 'http://.php?route=users';
 return fetch(url)
 .then((res) => res.json())
 .catch(err=> console.log(err)
 }
};

您可以检查this