Kei*_*ith 7 javascript reactjs react-native react-navigation
我在 React Native 中将导航参数重置为 null 时遇到问题。
MainTab
-- Home (stack)
-- Misc (stack)
-- Tips (stack)
在“主页”选项卡上,我有一个按钮可以转到“其他”,但我想转到“其他”的“提示”选项卡。
路由应该看起来像 - (Home -> Tips -> Misc)
该按钮返回以下参数 -
this.props.navigation.navigate('Tips', {backRoute: 'Home', routeImGoingNext: 'Misc'});
Run Code Online (Sandbox Code Playgroud)
传递这些参数后,我会根据从“主页”选项卡上的按钮传递的 backRoute 和 routeImGoingNext 参数,在“提示”屏幕的导航上呈现后退按钮和跳过按钮。
if(navigation.state.params && navigation.state.params.backRoute){
return {
headerLeft: (<HeaderBackButton onPress={()=>navigation.navigate(navigation.state.params.backRoute)}/> ),
headerRight: (
<TouchableOpacity onPress={()=>navigation.navigate(navigation.state.params.routeImGoingnext)}>
<Text style={{paddingRight: 10}}> Skip </Text>
</TouchableOpacity>
)
}
}
Run Code Online (Sandbox Code Playgroud)
在单击“主页”选项卡上的按钮后单击“提示”选项卡时,会出现我的问题。参数仍然设置,因此呈现后退按钮和跳过按钮,但如果我单击“提示”选项卡,就不应该有这些按钮。
关于如何在手动单击选项卡时重置参数的任何想法?
Kei*_*ith 11
我能够通过手动创建一个函数并设置传递给 null 的参数来清除参数。当标题按钮被按下时调用 clearParams 函数。
static navigationOptions = ({navigation}) => {
clearParams = () => {
navigation.setParams({backRoute: null, routeImGoingNext: null})
}
if(navigation.state.params && navigation.state.params.backRoute){
const { backRoute, routeImGoingNext } = navigation.state.params;
return {
headerLeft: (<HeaderBackButton onPress={()=>{navigation.navigate(backRoute), clearParams()}}/> ),
headerRight: (
<TouchableOpacity onPress={()=>{navigation.navigate(routeImGoingNext), clearParams() }}>
<Text style={{paddingRight: 10}}> Skip </Text>
</TouchableOpacity>
)
}
}
return;
}
Run Code Online (Sandbox Code Playgroud)
Mah*_*our 10
使用它来清除参数 react navigation
this.props.navigation.setParams({YOUR_PARAMS: null});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16215 次 |
| 最近记录: |