reactjs - 路由更改时反应路由器的位置状态变为未定义
问题描述
我想url query
在位置上存储为状态。
~ history.push({
+ ...history.location,
+ search: query.toString(),
+ state: {
+ myState: query.toString(),
+ },
+ })
我怀疑当路线改变时会得到状态,但是当我从其他路线返回时会state
变成状态。undefined
解决方案
这就是state
(来自 History API)的工作方式。null
状态附加到会话中的某个位置,并且在您直接导航到页面时不存在(或者更确切地说,是)。
一般来说,我不建议使用 location.state 来传递临时数据(如重定向位置)以外的任何内容。如果您需要将数据附加到某个位置,我建议您使用路径参数或搜索参数,并拥有一个可以从中查找数据的存储。
// path params
{ pathname: `/path/name/${SOME_ID}` }
// search params
{ search: `?someID=${SOME_ID}` }
如果你真的想使用 location.state,你的路由需要有某种备份计划,以便在 location.state 为空时使用一些默认值。
推荐阅读
- swift - 不允许对具有 MTLResourceStorageModePrivate 存储模式的纹理进行 CPU 访问。
- java - 使用Java读取和清理Excel文件
- macos - mac vscode ELECTRON RUN AS NODE 启动错误
- ffmpeg - ffmpeg在提取它们时会丢失帧
- time - 如何在hive中将品种自定义时间戳转换为秒
- r - 在 withTimeout 内运行 makeCluster 不起作用
- react-native - 选择 React Native 时如何自动滚动到索引?
- python - RuntimeError: Factor 是完全奇异的
- vb.net - Visual Studio 2019 社区中的属性事件
- python - Keras 图像分类损失