React Native 重新加载页面

Kev*_*ali 13 react-native react-native-android react-native-ios expo

所以我有一个带有活动的应用程序。该应用程序会在开始时检查 Internet 连接。如果没有 Internet 连接,它将显示一个带有刷新页面按钮的屏幕。问题是我的 API 调用 (Axios) 位于componentDidMount()第一次渲染后仅调用一次的位置。有什么办法可以重新加载页面,以便它调用componentDidMount再次?

我的意思是完全刷新。顺便说一句,我正在使用 EXPO。任何帮助表示赞赏。抱歉,没有示例,如果可能的话,我只是想了解一下

小智 0

请记住,通过在组件上调用 setState 函数,您可以刷新它。如果有一个要刷新页面的按钮,我会这样做:

<Button  onPress={() => this.setState({dummy: 1})} />
Run Code Online (Sandbox Code Playgroud)

无论您反对传递给它什么,调用 setState 都会更新您的组件。我不确定重新渲染页面是否调用componentDidMount函数,所以也许您需要将 API 调用移至某个函数,并在您的 中以及在每个按钮按下事件之后func调用此函数。componentDidMount例子:

componentDidMount() {
  apiCalls()
}

apiCalls() {
   .... // your code
   this.setState({dummy: 1})
}

render() {
  <View>
    ...
    <Button  onPress={this.apiCalls.bind(this)} />
    ...

  </View>
}
Run Code Online (Sandbox Code Playgroud)