У меня действительно странное поведение в моем реактивном приложении. Я отследил это до минимального примера.
У меня есть SwitchNavigator с двумя компонентами. Первый компонент ничего не делает, кроме перехода ко второму компоненту после 2000 мс. Второй компонент имеет ошибку в методе рендеринга (например, он пытается рендерить некоторые неопределенные вещи «test.error»).
Компонент кода 2:
render = () => {
return (
<View>
{
test.error
}
</View>
)
}
Во время разработки я получаю обычный «красный экран смерти», который говорит мне: «ReferenceError: ReferenceError: test is notfined». Это ожидаемое поведение.
Но при сборке релиза приложение завершается сбоем без вывода сообщений и просто отображает пустой экран. Нет сбоя приложения.
Дополнительная информация:
То же самое приложение вызывает сбой в сборке релиза (как и ожидалось), когда часть ошибки отображается после того, как компонент был монтирован.
Компонент 2 - аварийно завершает работу:
class Test extends Component {
state = {
error: false
};
componentDidMount = () => {
setTimeout(() => {
this.setState({error: true});
}, 0)
};
render = () => {
if (this.state.error) {
return (
<View>
{
test.error
}
</View>
)
} else {
return (
<View>
Test
</View>
)
}
}
}
Дополнительная информация:
- когда я использую Компонент 2 в качестве первоначально названного Компонента, мое приложение вылетает, как ожидалось. Кажется, только не вылетает после навигации.
- Поведение такое же, как и у StackNavigator
Версия:
- Реакция: 16.3.1
- ReactNative: 55,4
- ReactNavigation: пробовал с 1.6.0 и 2.18.2
- Bugsnag: 2.12.4