无法弄清楚如何将数据传递到世博路线,查询参数已保留

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

我有一个

/search
路线上的搜索结果列表。每个搜索命中都包含一个像这样的链接

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

当我导航到

/recipe
时,一切都很好,查询参数都在那里。当我点击
back
时,一切都会崩溃。返回到
/search
后,如果我再次点击搜索命中,页面就会因
malformed URIcomponent
崩溃。我相信这与 Expo 路由器浅层合并查询参数有关,这意味着当导航回
search
时,第一次导航的参数不会被清除。我不知道该怎么做。我尝试强制清除
/search
中的参数,这会导致无限渲染,以及
recipe
中的参数,这会导致一堆
cannot read properties of undefined
破坏页面。我真的不明白合适的模式是什么。

React 导航建议不要使用 URL 来存储状态,但我个人认为这是一堆废话,也是他们有缺陷的框架的借口。我不想开设全球商店。必须有更好的方法。

javascript react-native expo navigation
1个回答
-1
投票

查看 exo 文档中的片段


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
文件名。

这里是上述代码的URL。

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