我有一个带Activity的应用。该应用在开始时会检查互联网连接。如果没有互联网连接,它会显示一个带有按钮的屏幕来刷新页面。问题是我的API调用(Axios)位于componentDidMount()
上,在第一次渲染后它只被调用一次。有什么方法可以重新加载页面,让它再次调用componentDidMount
吗?
我的意思是像全面刷新。我正在使用世博会顺便说一句。任何帮助是赞赏。对不起,没有例子,我只是想得到的想法,如果可能的话
我有一个带Activity的应用。该应用在开始时会检查互联网连接。如果没有互联网连接,它会显示一个带有按钮的屏幕来刷新页面。问题是我的API调用(Axios)位于componentDidMount()
上,在第一次渲染后它只被调用一次。有什么方法可以重新加载页面,让它再次调用componentDidMount
吗?
我的意思是像全面刷新。我正在使用世博会顺便说一句。任何帮助是赞赏。对不起,没有例子,我只是想得到的想法,如果可能的话
7条答案
按热度按时间whitzsjs1#
您可以强制更新组件。请检查以下内容:https://reactjs.org/docs/react-component.html#forceupdate
它将重新呈现组件。
检查此示例:
8ehkhllq2#
我建议你把你的API调用放在你的组件中它自己的函数
fetchData
中。fetchData
也可以在成功提取后setState
,这将导致重新呈现并显示新鲜的数据。如果你想在componentDidMount上提取新鲜的数据,也可以在按钮点击时,然后创建一个fetchData
函数并从componentDidMount中调用它。然后为您的按钮设置适当的onPress属性onPress={this.fetchData}
bfrts1fy3#
7ajki6be4#
请记住,通过调用组件上的setState函数,您可以刷新它。如果有一个按钮将刷新页面,我会这样做:
调用setState将更新您的组件,无论您传递给它的对象是什么。我不确定重新呈现页面是否调用
componentDidMount
函数,因此可能您需要将API调用移动到某个函数func
,并在componentDidMount
中调用此函数,并且在每个按钮按下事件后调用此函数。示例:krcsximq5#
我使用的是
Functional component
,并执行了以下操作。我在useEffect
中使用了一个状态作为依赖项,并在按下按钮时更改了该状态。eqfvzcg86#
您可以通过在功能组件中执行以下操作来刷新React Native或Expo应用。
它会带来警报,当用户点击刷新页面按钮时,页面会被刷新。
qlckcl4x7#
我也陷入了同样的问题,然后我想通了,你只需要钩子或useState来解决刷新问题。在我的情况下,刷新随机甲板
我希望这能有所帮助。