代码之家  ›  专栏  ›  技术社区  ›  Peter Kellner

使用nextjs链接,如何传递对象客户端?

  •  0
  • Peter Kellner  · 技术社区  · 7 年前

    我有一个正在使用的链接组件,我想将一个javascript对象传递到我链接到的新页面。似乎我可以传递原语,但不能传递对象。

    也就是说,我想在下面这样做,但得到了一个与sessiondata关联的空字符串(session.id和session.sessionslug work)。

                    <Link
                        href={{
                            pathname: "/session", query:
                                {
                                    sessionSlug: this.props.session.sessionSlug,
                                    sessionId: this.props.session.id,
                                    sessionData: this.props.session
                                }
                        }}
                        as={`session/${this.props.session.sessionSlug}`}>
                        <a>{this.props.session.title}</a>
                    </Link>
    

    https://nextjs.org/docs/#with-link

    1 回复  |  直到 7 年前
        1
  •  0
  •   iurii    7 年前

    我想你可以试着 JSON.stringify 对象,然后 JSON.parse 它回来了

    例子

    页面/索引.js

    import Link from 'next/link';
    
    export default () => {
      const object = {
        key1: 'value1',
        key2: 'value2'
      };
    
      return (
        <Link href={{ pathname: '/about', query: { object: JSON.stringify(object) } }}>
          <a>here</a>
        </Link>
      );
    };
    

    页面/关于.js

    import { withRouter } from 'next/router';
    
    function About({ router: { query } }) {
      const object = JSON.parse(query.object);
    
      return (
        <div>
          about {object.key1} | {object.key2}
        </div>
      );
    }
    
    export default withRouter(About);
    

    希望这有帮助!