我在使用 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>
);
}
一旦通过输入文本输入触发 setParams() 函数,我就会收到错误“无法在屏幕外调用 setParams”
据我了解,由于布局中的 Stack.Screen,该组件位于屏幕内,因此我不确定为什么会收到此错误。如果您能帮助我了解如何使用 setParams,我将不胜感激。
我在直接从文档复制的最小示例中遇到了错误。
更新到新版本的expo(从49到50.x.x)后我遇到了同样的问题。我通过将 @react-navigation/native 更新到最新版本(^6.1.14)解决了这个问题。如果没有帮助,我建议你检查依赖项中库的所有版本。