React native 在React Native中导航到上一页时如何刷新数据?
我想做的事 当从第二页导航回第一页时,我想刷新数据 问题是,当我从第二页返回时,第一页中的React native 在React Native中导航到上一页时如何刷新数据?,react-native,React Native,我想做的事 当从第二页导航回第一页时,我想刷新数据 问题是,当我从第二页返回时,第一页中的onRefresh()不起作用 第一页 导出默认类首先扩展React.Component{ 建造师(道具){ 超级(道具); 此.state={ 刷新:错, 项目:[], }; } fetchData=async()=>{ const querySnapshot=db.items(); 常量项=[]; querySnapshot.forEach((doc)=>{ items.push(doc.data())
onRefresh()
不起作用
第一页
导出默认类首先扩展React.Component{
建造师(道具){
超级(道具);
此.state={
刷新:错,
项目:[],
};
}
fetchData=async()=>{
const querySnapshot=db.items();
常量项=[];
querySnapshot.forEach((doc)=>{
items.push(doc.data());
});
this.setState({items});
}
componentDidMount(){
这是fetchData();
}
componentDidUpdate(prevProps){
这是一种刷新;
}
onRefresh(){
this.setState({刷新:true});
this.fetchData()。然后(()=>{
this.setState({刷新:false});
});
}
render(){
返回(
);
}
}
第二页
this.props.navigation.navigate('First','update');
如果您能给我一些建议,我将不胜感激。假设您有两页
PAGE-A
和PAGE-B
- 创建名为
ForegroundBackground.JS的JS文件
从“React”导入React;
从“react native”导入{View};
const ForegroundBackground=({navigation,bgCallback,fgCallback})=>{
React.useffect(()=>navigation.addListener('focus',()=>{
fgCallback&&fgCallback()
}), []);
React.useffect(()=>navigation.addListener('blur',()=>{
bgCallback&&bgCallback()
}), []);
返回();
};
导出默认前台背景;
- 您可以在
的渲染功能中使用它,方法是从屏幕PAGE-A
向其提供props
对象navigation
{alert(“resume”)}/>
有两种解决方案
this.props.navigation.navigate(“pageB”{
重置数据:()=>{
这是我的国家({
mydata:“
})
}
})
从pageB导航时,您可以执行以下操作:
this.props.navigation.state.params.resetData();
this.props.navigation.goBack();
我希望有帮助。如果您想获得更多帮助/代码/讨论等,请留言谢谢。A和B是不同的部件。更改B中数据的状态后,它会导航回A。然后我想刷新A中的数据。如果您能帮助我,我将不胜感激。我必须说您确实应该选择第二个选项。您好,我很抱歉,我来晚了。你如何传递最后两个陈述?我在导航状态下找到了
不可序列化的值。选中:
当我点击页面上的后退按钮时B@Paul导航到pageB时是否已通过重置数据功能。如果是这样,那么请在这里分享您的代码,以便进行详细观察。