У меня была похожая проблема. Я не уверен, что является причиной этого, но, как временное исправление, обертывание его внутри setTimeout, кажется, делает работу, т.е.
setTimeout(() => {
Snackbar.show({
title: 'Connected to Internet',
duration: Snackbar.LENGTH_LONG,
action: {
title: 'DISMISS',
color: 'rgb(216,21,88)',
onPress: () => { /* Dismiss snackbar default */ },
},
});
}, 1000);
Кроме того, чтобы предотвратить импорт Snackbar во всех приложениях и возможность повторного использования кода, рассмотрите возможность помещения Snackbar.show () в отдельную функцию.
В настоящее время у меня есть это в utils.js , который я вызываю по всему моему приложению:
export const showSnackbar = ({ title, duration = Snackbar.LENGTH_SHORT, action }) => {
Snackbar.dismiss(); // dismiss if a snackbar is still "alive"
if (!action) {
Snackbar.show({
title: message,
duration,
});
} else {
Snackbar.show({
title,
duration,
action
});
}
};
Обратите внимание, что в начале я отклоняю ранее показанную снэк-бар, если она все еще на экране. Надеюсь, это поможет:)