【发布时间】:2019-05-04 03:53:32
【问题描述】:
在调试器运行时在 IOS 和 Android 中工作,但不能通过 Android 模拟器工作。我通过react-native log-android 收到此消息,基本上我没有返回任何内容:
12-02 10:39:58.511 22502 24204 W ReactNativeJS: TypeError: undefined is not a function (near '...}).flat()
这是我正在使用的 fetch 函数:
import axios from 'axios';
export const getData = async url => {
try {
const response = await axios.get(url);
const data = response.data;
return data;
} catch (error) {
console.log(error);
}
};
export default getData;
在我的 componentDidMount 内部,我使用上面的 GetData 函数调用端点:
componentDidMount() {
const teamsAPI = 'https://statsapi.web.nhl.com/api/v1/teams';
getData(teamsAPI).then(teams => {
const teamData = teams.teams
.map(({ id, name }) => ({
teamId: id,
teamName: name
}))
.flat()
this.setState({
teams: teamData
});
});
}
此后所有内容都已移至 REDUX,但我今天回顾了我的一个分支,上面共享了更基本的代码,并且当时也遇到了此代码的问题。不幸的是,直到现在还没有意识到代码编译的所有差异。了解该问题可能是由于 2 个编译器造成的,但不知道如何解决该问题/为什么其中一个会出现类型错误而不是另一个。
我认为由于这里提到的原因,它可以与调试器一起使用:
React Native behavior different in simulator / on device / with or without Chrome debugging
编辑:想提一下我已经完成了缓存重置并删除了构建文件夹并重新构建了
【问题讨论】:
-
看起来你的 getData 函数在遇到错误时不会返回任何内容。
标签: android reactjs react-native react-native-android undefined-function