React native android undefined 不是一个在 IOS 中有效的函数
React native android undefined is not a function works in IOS
在 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()
Android Picture
IOS Picture
这是我正在使用的获取函数:
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
编辑:想提一下我已经重置了缓存并删除了构建文件夹并重建了
我尝试了您的代码,在 Android 和 iOS 中拒绝承诺对我来说都很开心。它是由 .flat()
删除它阻止承诺拒绝发生引起的。
查看您在那里映射的数据,似乎不需要展平数据,因为它作为一个对象数组返回,其中没有其他数组。
删除 .flat()
对您来说可能是一个可行的解决方案吗?
您可以在此处查看有关 .flat()
的更多信息以及它如何仍处于实验阶段
我也会考虑在你的 getData
函数出错时返回一些东西,或者可能使用 promise 来处理错误。
在 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()
Android Picture
IOS Picture
这是我正在使用的获取函数:
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
编辑:想提一下我已经重置了缓存并删除了构建文件夹并重建了
我尝试了您的代码,在 Android 和 iOS 中拒绝承诺对我来说都很开心。它是由 .flat()
删除它阻止承诺拒绝发生引起的。
查看您在那里映射的数据,似乎不需要展平数据,因为它作为一个对象数组返回,其中没有其他数组。
删除 .flat()
对您来说可能是一个可行的解决方案吗?
您可以在此处查看有关 .flat()
的更多信息以及它如何仍处于实验阶段
我也会考虑在你的 getData
函数出错时返回一些东西,或者可能使用 promise 来处理错误。