#react-native #expo
#react-native #expo
Вопрос:
Мое приложение отлично работает на Android, но когда я запускаю его на Ios, я получаю эту ошибку :
ошибка диапазона: превышен максимальный размер стека вызовов react-native
Я понимаю, что где-то в коде должен быть бесконечный цикл? Но почему не на Android? в пакете metro у меня есть :
> Не удается запустить ваше приложение. Пожалуйста, обратитесь к https://expo.fyi/no-registered-application для получения дополнительной информации.
app.json в последнее время не менялся…
Я действительно не знаю, где искать, там много файлов. Опять же, на Android все в порядке… Я потерялся, может быть, кто-нибудь может подсказать мне, где искать ошибку такого рода. Я не знаю, какие файлы вызывают ошибку… Вот мой App.js но я не знаю, здесь ли проблема :
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
isFirstConnection: true,
status: 0,
fontLoaded: false
};
}
async UNSAFE_componentWillMount() {
let lang = await retrieveAppLang();
let isConnected = await userSessionActive();
if (lang.length == 2) {
i18n.changeLanguage(lang);
}
if (isConnected === true amp;amp; this.props amp;amp; this.props.navigation) {
this.props.navigation.navigate("TabBar");
}
}
async componentDidMount() {
await Font.loadAsync({
FunctionLH: require("./assets/fonts/FunctionLH-Light.ttf"),
});
const data = await this.performTimeConsumingTask();
if (data !== null) {
this.setState({
isFirstConnection: false,
status: 1,
fontLoaded: true,
});
}
}
performTimeConsumingTask = async () => {
return new Promise((resolve) =>
setTimeout(() => {
resolve("result");
}, 1500)
);
};
render() {
if (this.state.status == 1) {
if (this.state.isFirstConnection amp;amp; this.state.fontLoaded) {
return <SplashScreen />;
} else {
return <Navigation screenProps= {'Authentication'} />;
}
}
return (
<ImageBackground
source={require("./assets/images/background.jpg")}
style={{ flex: 1 }}
>
<View style={[styles2.container, styles2.containerCentered]}>
<StatusBar hidden={true} />
<View style={styles2.subContainer}>
<Image
style={styles2.logo}
source={require("./assets/images/logo.png")}
/>
<ActivityIndicator size="large" color="#43300E" />
<Text>{i18n.t("app.loading") "..."}</Text>
</View>
</View>
</ImageBackground>
);
}
}
Большое спасибо.
Комментарии:
1. Было бы лучше, если бы вы опубликовали код.
2. Я знаю, но у меня много файлов, и я просто не знаю, какой из них вызывает ошибку.. Я отредактировал с App.js но я не уверен, что проблема здесь
3. привет, в этой ситуации то, что я делаю, это удаляю все внешние элементы и компоненты из app.js затем добавьте их 1 к 1, чтобы найти точную причину ошибки, также вы можете поделиться репозиторием git, если это возможно, чтобы я мог попробовать это
4. большое спасибо, я собираюсь попробовать это
5. Проблема, похоже, была связана со слишком большим файлом базы данных. Разделение его на 2 решило проблему. Я все еще нахожу очень странным, что ошибка была только в Ios, но… Большое спасибо за помощь мне!