reactjs - 当用户从标题中单击 navigation.goback 时如何重置所有路由参数?
问题描述
在进入之前,params issue
我想先解释一下我的情况。
我有一个productlist
页面和productdetails
页面。
当我想从 to 导航时productlist
,productdetails A
我使用navigation.navigate
.
navigation.navigate('CaseDetails', {
screen: 'CaseDetails',
params: {
title: info.title,
summary: info.summary,
},
})
当我从productdetails A
到productdetails B
我使用navigation.push
navigation.push('CaseDetails', {
screen: 'CaseDetails',
params: {
title: item.title,
summary: item.summary,
},
});
事情是在我的 caseDetails 页面中,我得到了 2 组参数数据。
当我从productlist
到productdetails A
参数位于route.params
当我从productdetails A
到productdetails B
参数位于route.params.params
因此,为了显示正确的数据,我通过设置这样的条件来显示数据
{route.params?.params?.title === undefined
? renderPageView(route.params)
: renderPageView(route.params?.params)}
这是 renderPageView 函数
const renderPageView = (item) => {
return (
<View>
<View style={globalStyle.articleLandingContainer}>
<View style={globalStyle.articleLandingOverlay}></View>
<Text style={styles.landingText}>{item.title}</Text>
<Text style={styles.landingPara}>{item.summary}</Text>
</View>
</View>
</View>
);
};
所以最初的循环是页面很好。但在绕行的第二圈
当从productlist
到仍然存在productdetails A
route.params?.params?.title
因此,该应用程序向我显示了来自 productdetails B
而不是 productdetails A
.
所以在我的抽屉导航器中。我尝试像这样重置参数,但它什么也没做
clearParams = () => {
navigation.setParams({
title: undefined,
summary: undefined,
});
};
<Icon.Button
name="arrow-left"
size={25}
backgroundColor={headerColor}
onPress={() => {
navigation.goBack(), clearParams();
}}></Icon.Button>
我应该怎么做才能使它起作用
解决方案
推荐阅读
- sql - 不同级别的聚合,我需要在 sql server 中按类型级别获取总和
- python - 为返回参数类型的 Python 函数指定类型注释
- sql - 使用来自一列和另一列的值创建表而没有交集
- awk - 如何通过 awk 中的临时公共列连接两个 CSV 文件?
- php - laravel 7调用删除文件的方法函数
- c# - JWT .net 核心中的发行者和受众
- python - 在python中-如何绘制二维图形(x,y)并通过每个(x,y)坐标的颜色变化来添加第三轴?
- wpf - 您可以将结构数组从 WPF 传递到 hlsl 像素着色器吗?
- c# - 如何处理整个解决方案的 NuGet 依赖版本解析
- unit-testing - Flutter 测试通过子文本查找