React Native 0.61中引入的快速刷新不起作用

时间:2019-12-20 11:02:02

标签: react-native

(也发布在https://github.com/facebook/react-native/issues/27583中)

更新:一天过去了,我再次启动了我的应用。自发布问题以来未进行任何更改。现在工作正常。不知道发生了什么... 从两个人将这个问题标记为有用的事实来看,我了解到我并不是唯一一个遇到此问题的人...

我正在使用React native 0.61运行一个非常基本的“应用”(单个文件,单个组件),其代码附在下面。

使用genymotion在Windows 10上为android开发。

Fast Refresh已打开,但似乎不起作用,例如,在以下情况下:

  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
  }
});

2 个答案:

答案 0 :(得分:0)

我发现有时Metro Bundler会“卡住”。那可以解释为什么第二天运行它时效果很好。

当(似乎)没有明显原因使事情变得怪异时,我会这样做:

yarn start --reset-cache

答案 1 :(得分:0)

在我的例子中,我跑了 watchman watch-del-all,突然我失去了快速重新加载。

重新安装 node_modules 并清除并重建应用程序对我没有帮助。

<块引用>

更新:一天过去了,我再次启动了我的应用。自发布问题以来没有改变任何东西。现在它工作正常。不知道发生了什么...

从这里得到一个提示并重新启动了我的电脑。现在它工作正常。