多次在 API 调用上以反应原生方式呈现屏幕

Posted

技术标签:

【中文标题】多次在 API 调用上以反应原生方式呈现屏幕【英文标题】:Multiple times Screen render on API call in react native 【发布时间】:2021-08-09 14:05:27 【问题描述】:

我已将控制台日志放在我的功能组件文件中。每当调用 API 时,都会在此文件中呈现。如果我在其他文件中调用 API 并且与该文件无关的 API 仍然有日志。我不确定为什么。我已经检查了 useEffect 和 usestate 但没有任何线索。甚至从谷歌搜索没有线索。

    我正在使用 Usestate 来存储和 useEffect 在数据更改时重新加载页面 我正在使用apisauce调用API 反应原生导航底部标签来导航屏幕 使用 React.memo 但仍然呈现页面。

请任何人帮我解决这个问题。因为我是新来的反应原生的。

【问题讨论】:

为什么不试试类组件? 现在不可能。因为我几乎完成了,功能组件对我来说很容易。还有我如何通过使用类组件来解决。 @Dipan Sharma 【参考方案1】:

只要状态或道具发生变化,React 组件就会自动重新渲染。从代码中的任何位置对状态进行简单更新,都会导致所有用户界面 (UI) 元素自动重新呈现。

但是,在某些情况下,render() 方法可能依赖于其他一些数据。在初始安装组件后,会在以下情况下发生重新渲染:

组件的 setState() 方法被调用。

组件的 forceUpdate() 方法被调用。

警告:您通常应该尽量避免使用 forceUpdate(),并且只在 render() 中读取 this.props 和 this.state。

【讨论】:

感谢您的回复@Mehroze Yaqoob。如何在本机反应中避免这个问题?你能帮帮我吗? 这不是问题,它是 react native 在 UI 上执行失效的方式。如果您认为过多的重新渲染会导致屏幕抖动,那么您需要应用适当的 if-else 检查以避免重新渲染。

以上是关于多次在 API 调用上以反应原生方式呈现屏幕的主要内容,如果未能解决你的问题,请参考以下文章

如何在反应中使用 API 调用测试组件?

当反应原生应用程序启动时,将初始状态从 API 调用传递给 createStore

可触摸的不透明标题反应原生

反应原生模态时间延迟和生涩的动画

如何在反应原生导航 v5 中将数据传递回上一个屏幕?

如果卸载应用程序,反应原生如何运行代码