Быстрое обновление, представленное в React Native 0.61, не работает

(также опубликовано в https://github.com/facebook/react-native/issues/27583)

Обновление: прошел день, и я снова запустил свое приложение. Ничего не изменил с момента публикации вопроса. Теперь работает нормально. Понятия не имею, что случилось... Судя по тому, что два человека отметили этот вопрос как полезный, я понимаю, что не только у меня возникла эта проблема...

Я запускаю очень простое "приложение" (один файл, один компонент), код которого прилагается ниже, с использованием React native 0.61.

Разрабатывается под android, на windows 10 с genymotion.

Быстрое обновление включено, но не работает, например, когда:

  1. Я меняю строку "Сообщения" на "Новые сообщения"
  2. Когда я удаляю кнопку сообщений

Только "перезагрузка" в меню отладки обновляет приложение и отображает изменения. Есть идеи, почему?

Вот код:

import React, { useState } from 'react';
import { View, TouchableOpacity, Text, StyleSheet } from 'react-native';

export const App = () => {

  const [resource, setResource] = useState('todos');

  return (
    <View style={{ flex: 1, alignItems: 'center', marginTop: 30 }}>
      <View style={{ flexDirection: 'row', marginTop: 0,
        alignItems: 'center', justifyContent: 'center' }}>
        <TouchableOpacity onPress={() => (setResource('posts'))}>
          <View style={styles.button}>
            <Text style={styles.buttonText}>
              Posts
            </Text>
          </View>
        </TouchableOpacity>
        <View style={{ width: 20 }} />
        <TouchableOpacity onPress={() => setResource('todos')}>
          <View style={styles.button}>
            <Text style={styles.buttonText}>
              Todos
            </Text>
          </View>
        </TouchableOpacity>
      </View>
    </View>
  );
}

const styles = StyleSheet.create({
  buttonText: {
    color: 'black',
    fontSize: 20
  },
  button: {
    backgroundColor: '#a8a',
    justifyContent: 'center',
    alignItems: 'center',
    paddingVertical: 5,
    paddingHorizontal: 10,
    borderRadius: 2
  }
});

3 ответа

Я обнаружил, что иногда Metro Bundler "застревает". Это объясняет, почему, когда вы запустили его на следующий день, он работал нормально.

Когда что-то становится странным (по-видимому) без видимой причины, я делаю:

yarn start --reset-cache

Несколько минут назад у меня была такая же проблема. Быстрое обновление не работало, даже если оно было включено. Я закрыл пакет метро и запустил новый экземпляр. Работал у меня.

В моем случае я сбежал watchman watch-del-all и вдруг пропала быстрая перезарядка.

Переустановка node_modules и очистка и восстановление приложения мне не помогли.

Обновление: прошел день, и я снова запустил свое приложение. Ничего не изменил с момента публикации вопроса. Теперь нормально работает. Понятия не имею, что случилось ...

Получил подсказку и перезагрузил компьютер. Теперь нормально работает.

Другие вопросы по тегам