【问题标题】:how to pass object as params in Router.push() in nextjs and access that object in other component如何在 nextjs 的 Router.push() 中将对象作为参数传递并在其他组件中访问该对象
【发布时间】:2020-11-09 17:06:00
【问题描述】:

Router.push({pathname: '/card', query:{data: ObjectData}})

我得到查询,因为空值无法将对象传递给它

【问题讨论】:

  • 什么是 ObjectData ,你能发布代码来说明它是如何创建的吗?您是否尝试过将示例对象传递给它,例如:{foo:bar} - 空值表示其已初始化但 ObjectData 不可访问

标签: javascript reactjs push next.js router


【解决方案1】:

你可以像这样传递你的参数:

router.push({
      pathname: '/card',
      query: { data: JSON.stringify(ObjectData)}
  })

你可以像这样在卡片组件中获取参数:

JSON.parse(props.router.query.data);

【讨论】:

    【解决方案2】:

    Ciao,在 next.js 中你可以像这样传递查询参数:

    Router.push({
      pathname: '/card',
      query: { name: 'Someone' }
    })
    

    然后你用这种方式检索它:

    this.props.router.query.name
    

    假设你的 ObjectData 是一个 JSON 对象,你可以像这样传递它:

    Router.push({pathname: '/card', query: ObjectData})
    

    你怎么看?

    【讨论】:

    • 如果我不想在查询中传递 ObjectData 并将 paas 作为普通参数作为对象传递怎么办
    • Ciao,我认为你做不到。我正在阅读 next.js docs。如示例所示,您只能使用查询道具传递道具。
    猜你喜欢
    • 2020-06-13
    • 2021-10-30
    • 2021-08-07
    • 2019-03-03
    • 2011-02-17
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    相关资源
    最近更新 更多