是什么原因导致react native的读取速度如此之慢?

wlp8pajw  于 2023-08-07  发布在  React
关注(0)|答案(4)|浏览(168)

在下面的代码中,第一条console.log消息几乎是立即打印的。然后一切都挂起(我最初假设它在等待返回响应的主体)。Body的响应只有26K左右,等待的时间似乎是无限期的,除非,我摇晃手机,与调试菜单互动。只要我与调试菜单交互,promise就会解决,一切都按照预期进行。我与调试菜单的交互可以很简单,比如隐藏检查器,显示检查器,只需要一些东西来启动promise解决方案,一切都很好。

fetch(SEARCH_URL, requestBody)
    .then((response) => {console.log(response); return response.json();})
    .then((responseData) => {
        debugger
        ...

字符串
注意:断开与调试器的连接并运行代码不会显示出速度慢(并且未连接到调试器会忽略调试器语句)
是的,我重启了电脑。
可能在https://github.com/facebook/react-native/issues/6679中找到了一些东西

lqfhib0f

lqfhib0f1#

正如您自己发现的,这是一个已知的bug,应该在react-native v0.31中修复

cbeh67ev

cbeh67ev2#

当启用远程调试时,解析响应可能会严重滞后,这是一个已知的错误。禁用远程调试应该会大大加快这一速度。
您可以read the issue了解详细信息和其他变通方法。

anauzrmj

anauzrmj3#

对我有用的是将fetch调用移动到react组件的构造函数中。否则他们永远不会解决。希望这对你有帮助

w3nuxt5m

w3nuxt5m4#

有点晚了,但我最终在重新获取之前将数据数组的状态设置为空数组,因为对我来说,只有在刷新时才会慢。

useEffect(() => {
    setUsers([]);

    axios.get(`${BASE_URL}comp/main/`,
        {
            headers:{
                'X-API-KEY':userKey
            }
        })
                .then(response => {
                    setUsers(response.data);
                })
                .catch(error => {
                    console.log(error);
                })
                .finally(() => { setLoading(false),setRefreshing(false) });

}, [refreshReducer]);

字符串

相关问题