Expo Router React Native setParams() 不在屏幕上错误

问题描述 投票:0回答:1

我在使用 Expo Router 的 router.setParams() 方法时遇到问题。

我试图按照这里的例子: https://docs.expo.dev/router/reference/search-parameters/#updating-search-parameters

我设置了一个最小的测试,其中的示例直接从那里复制为 page.tsx 和 Stack.Screen

这是我的_layout.txt


export default function RootLayout() {
  return (
    <GestureHandlerRootView style={{ flex: 1 }}>
      <ThemeProvider value={DarkTheme}>
        <View className=" w-screen h-screen dark">
          <Stack>
            <Stack.Screen name="(drawer)" options={{ headerShown: false }} />
            <Stack.Screen name="page" options={{ headerShown: false }} />
          </Stack>
        </View>
      </ThemeProvider>
    </GestureHandlerRootView>
  );
}

以下是我的文件的设置方式: My file structure, with _layout.tsx and page.tsx in the App folder

一旦通过输入文本输入触发 setParams() 函数,我就会收到错误“无法在屏幕外调用 setParams”

The error, Cannot call setParams outside a screen

据我了解,由于布局中的 Stack.Screen,该组件位于屏幕内,因此我不确定为什么会收到此错误。如果您能帮助我了解如何使用 setParams,我将不胜感激。

我在直接从文档复制的最小示例中遇到了错误。

react-native expo react-navigation expo-router
1个回答
0
投票

更新到新版本的expo(从49到50.x.x)后我遇到了同样的问题。我通过将 @react-navigation/native 更新到最新版本(^6.1.14)解决了这个问题。如果没有帮助,我建议你检查依赖项中库的所有版本。

© www.soinside.com 2019 - 2024. All rights reserved.