【问题标题】:history push is pushing two times same key历史推送是按两次相同的键
【发布时间】:2021-04-01 21:27:12
【问题描述】:

英语不是我的语言,所以可能会出现错误,我是初学者(react hooks),我的表单(antd)数据正在 url 中移动,一切正常,除了返回并将表单输入值更改为另一个再往前走,我可以看到现在有两次相同的键但不同的值,我的意思是现在有例如'name = james'和'name = susan',但我只想有一个'name'和它应该是最新的,我应该以不同的方式推动吗?如果有助于理解,下面也是我为此制作的图片。当 console.log(query);它显示了两个“名称”

下一页功能来自这里: 表格>

我要从 b 页返回到 a 页,如下所示:

const query = window.location.toString().split("?")[1];

  const handleclick = () => {
    history.push(`/pagea/${custId}?${query}`);
  };

nextPage函数中的历史推送是这样的

const query = window.location.toString().split("?")[1];

  const nextPage = (order: rRequest) => {

    history.push(`/customers/${custId}?${query}&name=${order.name}`);
 };

【问题讨论】:

  • 你能分享一个最小的CodeSandbox 来重现这个问题吗?
  • 但请记住,所有详细信息都需要在您的帖子中 - 在您的帖子中显示 minimal reproducible example 代码,并将代码框链接作为“可运行示例”,而不是“唯一的查找方式”说出你的意思”。
  • 我认为您的问题来自您附加的整个查询,分配这些查询参数而不是从 url 中删除它可能对您有好处,这样您每次都有新副本
  • 你能用我的代码实现一些工作示例吗?如果需要知道什么我会回答,或者一些特定的代码......

标签: javascript html css reactjs


【解决方案1】:
const query = window.location.toString().split("?")[1];
var qry = "";
if (query) {
  qry = query.split("&");
  for (var i = 0; i < qry.length; i++) {
    var curr = qry[i].split("=");
    if (curr[0] == "name") {
      qry.splice(i, 1);
      i--;
    }
  }
  qry = qry.join("&");
}

const nextPage = (order: rRequest) => {
  history.push(`/customers/${custId}?${qry}&name=${order.name}`);
};

【讨论】:

  • 在哪个字符串上?
  • TypeError: 无法读取未定义的属性“拆分”
  • 可能你已经在这段代码之前使用了变量i
  • 我搞砸了i &lt; qry.length
  • 嘿,我让它像这样工作 const query = window.location.toString().split("?")[1]; var qry:任何; if (query) { qry = query.split("&"); for (var i = 0; i
猜你喜欢
  • 2019-01-16
  • 2012-07-27
  • 2021-04-11
  • 2019-04-10
  • 2016-12-17
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
相关资源
最近更新 更多