插入新数据后如何在react-native中重新加载页面,并且我正在使用mobx进行状态管理

问题描述 投票:-2回答:1

我正在使用像这样的代码,它对我不起作用

componentWillRecieveProps(nextProps,nextState){
  if(nextProps.navigation.state != this.state){
    //here calling api
   }
}
react-native react-native-android react-navigation react-native-flatlist mobx
1个回答
2
投票
我认为这个问题应该更详尽,以帮助解决您的问题。根据您的问题,您可能会要求-->

    如果数据更改,如何重新加载页面
  1. 导航状态更改时如何重新加载页面
  2. 如果数据更改,如何重新加载页面

在这种情况下,您无需添加'componentWillRecieveProps'。您可以像这样在render方法中简单地检查一个值

{data.items.length && <ItemLIstCustomComponent />}

{data.items.length ? <ItemLIstCustomComponent /> : <EmptyMessageComponent />}

您可以在本机中查看conditional rendering。如果重新渲染还没有发生?那么您更新状态/数据的方式不正确。确保复制对象并更新现有对象。

要了解这一点,请阅读有关可变对象的信息,并对浅表检查做出反应以进行重新渲染。也许是this会有所帮助

导航状态更改时如何重新加载页面

我认为在componentWillRecieveProps中调用另一个API或进行任何与状态更改相关的事情不是好习惯。您可以创建一个新的屏幕,在该屏幕上浏览并在componentDidMount中调用API。如果您不使用任何导航库,则可以尝试React navigation

© www.soinside.com 2019 - 2024. All rights reserved.