React Native 无法弄清楚如何将数据传递到expo路由,保留查询参数

z6psavjg  于 2023-11-21  发布在  React
关注(0)|答案(1)|浏览(153)

我有一个/search路由上的搜索命中列表。

<Link href={`/recipe?recipe=${JSON.stringify(recipe)}`} />

字符串
当我导航到/recipe时,一切都很好,查询参数都在那里。当我点击back时,一切都中断了。回到/search后,如果我再次点击搜索命中,页面会崩溃为malformed URIcomponent。有些搜索命中的名称中有“%”或括号,导致这个URI编码错误。但是当我尝试明显的解决方案时,还是会发生
const encodedName = encodeURIComponent(name);

<Pressable
              onPress={() =>
                router.push(
                  `/recipe?id=${id}&name=${encodedName}&brandName=${brandName}&macros=${JSON.stringify(
                    macros
                  )}`
                )
              }
            >
    ```

bvjveswy

bvjveswy1#

查看exo docs中的代码片段

import { Link } from 'expo-router';

export default function Page() {
  return (
    <View>
      <Link
        href={{
          pathname: "/user/[id]",
          params: { id: 'bacon' }
        }}>
          View user
        </Link>
    </View>
  );
}

字符串
目录结构在这里很重要。上面的例子使用了下面的目录结构。还要注意[id].js文件名.

Here是上述代码的URL。

相关问题