Javascript 对如何序列化对象并将其传递给url作出反应

Javascript 对如何序列化对象并将其传递给url作出反应,javascript,arrays,json,reactjs,react-router,Javascript,Arrays,Json,Reactjs,React Router,我需要通过url(作为参数)传递对象,并从其他组件获取它。 因此,我想将对象字符串化,并将其作为参数传递,如下所示: <li key={something}><Link to={{pathname:`/animal/${JSON.stringify(item)}`}}>{item.name}></Link></li> <Link to={{pathname:`/animal/${++index}`,query:{'obj':JSON.

我需要通过url(作为参数)传递对象,并从其他组件获取它。
因此,我想将对象字符串化,并将其作为参数传递,如下所示:

<li key={something}><Link to={{pathname:`/animal/${JSON.stringify(item)}`}}>{item.name}></Link></li>
<Link to={{pathname:`/animal/${++index}`,query:{'obj':JSON.stringify(item)}}}>{item.name}></Link>
  • {item.name}>
  • 但现在浏览器上的url显示为:,我无法使用json.parse()将其转换回json对象


    在新组件上,我得到了
    {this.props.params.obj}
    ,正如我在route上声明的:
    但是我不能转换回json对象。

    我通过在
    元素的查询对象上传递我的对象来解决这个问题,如下所示:

    <li key={something}><Link to={{pathname:`/animal/${JSON.stringify(item)}`}}>{item.name}></Link></li>
    
    <Link to={{pathname:`/animal/${++index}`,query:{'obj':JSON.stringify(item)}}}>{item.name}></Link>
    
    组件的内部安装:

    componentDidMount:function(){
            /*GET THE OBJECT FROM THE URL PARAM*/
            const tmp =  JSON.parse(this.props.location.query.obj);
            //i manipulate the JSON object....
    }
    

    这对我来说似乎不是一件好事。通常您传递id,服务器将向数据库发出请求以检索整个对象