[react-router-dom] 请教关于 this.props.history.push 里 search 存值的问题

2019-11-21 10:11:40 +08:00
 devwolf

[前置提问] :除了 sessionStorage、localStorage 以及 url 中存储关键字,还有什么法子使 react 数据刷新后仍然存在?

[本次提问] 目前有这样类型的需要持久化(刷新后还存在)的数据 adminManage:{ tabs_key:"3", comicData:{ id:"000001", comic_Name:"xxx", comic_img:"xxx"//图片外链的完整 url,大概很长 } }

[测试 1 ] 我试了一下直接 search:JSON.stringify({tabs_key:"3"}), 得到的 this.props.location.search 意外的是{"{tabs_key:"3"}":null} ————于是,想请教为什么这里会出现"键名:null"的情况,当然,情形描述的条件可能有误,可以直接解释什么情况下存 search 的值会变成"键名:null"

[测试 2 ] import queryString from "query-string"; 我改用了 search:queryString.parse(adminManage),然后结果是可预测的——comicData 这样对象里的对象无法正确存取,便决定 adminManage.comicData = JSON.stringify(adminManage.comicData)再存, 结果也不成,直接报错了。

[实在不行] 当然,可以直接 adminManage:{ tabs_key:"3", comicId:"000001", } 这样多用 id 调一次接口解决问题。

我更想在社区请教关于 react-router 里这个奇怪的 search 该怎么用,用法以及场合。

3313 次点击
所在节点    React
2 条回复
zjm947373
2019-11-21 11:03:24 +08:00
devwolf
2019-11-21 13:48:49 +08:00
@zjm947373 谢了。。。虽然之前也找过官方的,不过这次再看的时候想起来了,之前没出问题的时候是在动态路由里存的 obj,有空我再去试试能不能存两层的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/621627

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX