我正在使用像这样的代码,它对我不起作用
componentWillRecieveProps(nextProps,nextState){
if(nextProps.navigation.state != this.state){
//here calling api
}
}
{data.items.length && <ItemLIstCustomComponent />}
或
{data.items.length ? <ItemLIstCustomComponent /> : <EmptyMessageComponent />}
您可以在本机中查看conditional rendering。如果重新渲染还没有发生?那么您更新状态/数据的方式不正确。确保复制对象并更新现有对象。
要了解这一点,请阅读有关可变对象的信息,并对浅表检查做出反应以进行重新渲染。也许是this会有所帮助
导航状态更改时如何重新加载页面
componentWillRecieveProps
中调用另一个API或进行任何与状态更改相关的事情不是好习惯。您可以创建一个新的屏幕,在该屏幕上浏览并在componentDidMount
中调用API。如果您不使用任何导航库,则可以尝试React navigation。