简体   繁体   English

重新加载堆栈并在 react-native 中滑动

[英]Reload a stack and swipe it in react-native

I am trying to swipe in a page and I have:我正在尝试在页面中滑动,并且我有:

import { StyleSheet, Text, View } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { HomeScreen } from './screens/Home';
import { IvoryFeedScreen } from './screens/IvoryFeed';

export default function App() {

  const Stack = createNativeStackNavigator();


  return (
    <NavigationContainer>
      <Stack.Navigator initialRouteName='feed' screenOptions={{ headerShown: false, gestureDirection: 'vertical' }}>
        <Stack.Screen name="feed" component={IvoryFeedScreen} />
        <Stack.Screen name="home" component={HomeScreen} />

      </Stack.Navigator>
    </NavigationContainer>
  );
}

When I'm on IvoryFeedScreen , I have:当我在IvoryFeedScreen上时,我有:

import React, { useEffect, useState } from 'react'
import { View, Text } from 'react-native';
import { Link } from '@react-navigation/native';

export function IvoryFeedScreen() {
  return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
      <Text>Ivory Feed Screen</Text>
      <Link to="/home">Home</Link>
      <Link to={`/feed/${Math.random()}`}>Feed - {Math.random()}</Link>
    </View>
  );

}

So when you click through to feed, it simply refreshes.因此,当您单击以供稿时,它只会刷新。 But I want it to swipe in as if it were a new route.但我希望它像一条新路线一样滑入。 Can this be accomplished?这能实现吗?

Use action to change behavior for in-page navigation.使用操作来更改页内导航的行为。 push action adds a route on top of the stack, so a route can be present multiple times. push动作在栈顶添加一个路由,所以一个路由可以出现多次。

<Link 
  to={`/Details/${Math.random()}`} 
  action={StackActions.push(`Details`)}>
  Feed - {Math.random()}
</Link>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM