React Native Expo:与使用 Expo Router 的原始值相比,作为参数接收的不同 photoURL

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

我在 React Native Expo 项目中遇到一个问题,我使用 Expo Router 在屏幕之间传递 photoURL 作为参数,但收到的值与原始值不同。我将照片存储在 firebase 存储中。这是我的设置的简化概述:

我有一个主屏幕,可以在其中获取用户数据(包括 photoURL),并在地图上按下标记时导航到另一个屏幕(我们称之为 Screen2)。我使用 Expo Router 的导航道具将 photoURL 作为参数传递给 Screen2 屏幕。

这是我导航到 Screen2 的主屏幕中的相关代码片段:

const onMarkerPressed = useCallback((userData) => {
        const userparams = { userData: JSON.stringify(userData), photoURL: userData.photoURL };
        router.navigate({ pathname: '/screen2', params: userparams });
}, [userLocation]); 

这是我在 Screen2 中访问 photoURL 的方法:

const params = useLocalSearchParams();
const { photoURL } = params;
console.log("photoURL", photoURL)

问题在于,Screen2 中收到的 photoURL 与主屏幕中获取的原始 photoURL 不同。

我检查了数据流并确认从主屏幕作为参数传递的 photoURL 是正确的。但是,当我在 Screen2 中记录 photoURL 时,它是一个不同的值。

主屏幕中的photoURL:https://firebasestorage.googleapis.com/app-name/o/Users%2F1702579717947?alt=media&token=02d60b8b-09e7-4d1c-aa3f-902de123396b

photoURL 作为参数接收:https://firebasestorage.googleapis.com/app-name/o/Users/1702579717947?alt=media&token=02d60b8b-09e7-4d1c-aa3f-902de123396b

区别在于用户/。正确的是“%2F”而不是“/”

有人可以帮我理解为什么 photoURL 值在屏幕之间变化以及如何解决这个问题吗?

任何见解或建议将不胜感激。谢谢!

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

遇到同样的问题,你找到解决办法了吗?

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