Javascript 对如何序列化对象并将其传递给url作出反应
我需要通过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.
因此,我想将对象字符串化,并将其作为参数传递,如下所示:
<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,服务器将向数据库发出请求以检索整个对象