Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在URL查询字符串上存储对象_Reactjs_React Router_React Router V4_React Router Redux - Fatal编程技术网

Reactjs 如何在URL查询字符串上存储对象

Reactjs 如何在URL查询字符串上存储对象,reactjs,react-router,react-router-v4,react-router-redux,Reactjs,React Router,React Router V4,React Router Redux,我正在React上开发一个通用搜索组件,将其过滤器、当前页面和一些其他参数放在URL查询字符串上(在?之后) 我目前使用将查询字符串转换为js对象,然后再转换回查询字符串,正如react-router-v4所期望的那样 关键是我需要在查询字符串中存储一个对象,这样我就可以将搜索过滤器(可以有多个字段)与其他参数区分开来 我知道我可以,并将所有内容存储在一个filter参数上,或者我可以使用点符号(?filter.name=foo&filter.tag=bar)或者甚至方括号符号(?filter[

我正在React上开发一个通用搜索组件,将其过滤器、当前页面和一些其他参数放在URL查询字符串上(在
之后)

我目前使用将查询字符串转换为js对象,然后再转换回查询字符串,正如
react-router-v4
所期望的那样

关键是我需要在查询字符串中存储一个对象,这样我就可以将搜索过滤器(可以有多个字段)与其他参数区分开来

我知道我可以,并将所有内容存储在一个filter参数上,或者我可以使用点符号(
?filter.name=foo&filter.tag=bar
)或者甚至方括号符号(
?filter[name]=foo&filter[tag]=bar
)来存储对象,并在从url读取它们时对它们进行相应的处理


我倾向于选择JSON符号,但是这种方法有什么问题吗?我应该事先知道任何限制吗?有更好的方法吗?

你好,穆里洛,上周你帮我问了一个问题,我想我可以给你一些建议,也许可以提供一些帮助?我向URL传递信息的方法是使用
Link
传递变量,然后在我的路由中,传递该特定路由的参数。如果你愿意,我可以给你举个例子?不过我不确定这是否有什么帮助。我一直在使用它将信息传递给我将来可以访问的其他路由。很高兴知道我很有帮助:)因此,我已经使用了
链接
,有时还使用了
push()
方法(当api调用返回,然后我重定向到某个地方时),设置搜索参数效果很好。这里的问题是,我想在搜索字符串上存储整个JS Objecthmm。。我自己也不太确定是否可以将json传递到URL中。我相信您需要将该对象转换为字符串,以便URL可以读取它。我要做的是,如果它是一个对象,我将使用
JSON解析它。stringify
并传入字符串,以便url可以读取它,如果您需要在视图中使用它,我将使用
JSON再次解析它。parse
将它解析回一个对象。是的!这是我的第一个想法。我见过其他两种选择,我不知道其中是否有问题。如果有任何问题,我想听听已经做过的人的意见