首页 > 其他分享 >给url的query传参时的奇妙现象

给url的query传参时的奇妙现象

时间:2023-10-11 20:34:48浏览次数:31  
标签:00 syslog url filter start 传参时 let time query

如果你要传一个时间参数,那么要小心啦!这个问题看得我头疼。见下面例子:

let start_time="23-10-10 00:00:00"
let urlTo=`/syslog?start_time=${start_time}`

好的,要执行跳转了。此时urlTo在浏览器url栏中会变成:

/syslog?start_time=2023-10-10%2000:00:00

也就是空格变成了%20。一开始并不在意,我就在另一个组件用下面的方式把参数取了出来:

var searchParams = new URLSearchParams(location.hash);
for (let p of searchParams) {
	console.log(p);
}
// 打印
['#/syslog?start_time', '2023-10-04 00:00:00']

看起来没什么问题是吧?然而,我什么都没做,这个组件就给我渲染了4次!正常情况下其实是渲染两次。
渲染次数暂且不谈。让我们看看会发生什么?

我原本state中有个filter属性,我要根据url传进来的参数初始化filter

this.state={
	filter:{
		start_time:searchParams.get('start_time') || ''
    }
}
render(){
	console.log(this.state.filter)
}

结果你猜怎么着,前两次渲染打印的是传过来的参数,而后面两次被某种神秘因素置为空了!就是这个问题,卡了我好久。后面探索出要改哪里了,但依旧不知道为什么要这样改。

改法很简单,不要传空格!

let urlTo=`/syslog?start_time=${start_time.replace(' ','T')}`

所以这是为什么呢?

标签:00,syslog,url,filter,start,传参时,let,time,query
From: https://www.cnblogs.com/sanhuamao/p/17758114.html

相关文章

  • django model 条件过滤 queryset.filter详细用法
    条件选取querySet的时候,filter表示=,exclude表示!=。querySet.distinct()去重复__exact精确等于like'aaa'__iexact精确等于忽略大小写ilike'aaa'__contains包含like'%aaa%'__icontains包含忽略大小写ilike'%aaa%',但是对于sqlite来说,contains的作用效果等同......
  • tp5 php 阿里OS RequestCoreException: cURL error: SSL certificate problem: certif
    出现这种情况,肯定是域名SSL证书过期。现在出现问题:提交表单出现这种情况,网址不是https的,之前一直也没有问题,一开始想不通网址都不是HTTPS为什么还会有SSL证书的问题,检查了下发现上传中图片是上传到阿里OSS的(https://img.oss.xxx.com),里边就用到了HTTPS域名,原来是这样里,一查发现过......
  • jquery uploadify动态更新配置参数方法uploadifySettings()
    1.使用scriptData给后台传参数的时候,必须声明'method':'GET',因为默认是POST2.$("#uploadify").uploadifySettings('scriptData',{'name':'liudong','age':22});动态更新配置参数$("#uploadify&quo......
  • jquery取redio、checkbox、select的值
    从jQuery1.3开始,前导的@符号已经被废除redio//取值varitem=$("input[name=radio_name]:checked").val();或$("input[name='radio_name']:checked").val();或$("[name='radio_name'][checked]").......
  • 使用jquery的html()判断Table元素为空时的bug
    在使用jquery的html()函数判断接点为空时从服务器端取数据,不为空时则不再取数据,这样减少与服务器的交互。使用元素<divid="test"></div>使用if(!$("#test").html())判断没有问题使用<tableid="test"></table>时出现问题,判断时总不为空,用alert($("#t......
  • jquery.form.js与file文件域、document.domain有冲突
    jquery.form.js的ajaxForm、ajaxSubmit方法无法成功执行回调函数:1.用response.getWriter().out()给客户端打印数据与<scripttype="text/javascript">document.domain="XXX.com";</script>使用jquery.form.js的ajaxForm、ajaxSubmit方法,......
  • struts2+hibernate+spring+jquery返回json List列表
    1.引入包:struts2-json-plugin-2.1.8.1.jarjson-lib-2.1.jarcommons-collections-3.2.1.jarcommons-beanutils-1.8.2.jarcommons-lang-2.4.jarezmorph-1.0.6.jar,其他的包略,这几个包是返回json形式的数据必须的2.<packagename="default"extends="js......
  • SQLAlchemy学习-13.分页查询'Query' object has no attribute 'paginate'
    前言用过Flask-SQLAlchemy的应该知道,它提供了一个分页查询方法paginate(),方便我们实现在后端查询分页。但是单独使用SQLAlchemy却没有paginate方法,会报错:AttributeError:'Query'objecthasnoattribute'paginate'SQLAlchemy没有paginate方法Flask-SQLAlchemy分页查询参......
  • cadquery命令 .cboreHole()
      .cboreHole(0.125,0.25,0.125,depth=0.4) ......
  • jquery获取radio选中值及遍历
    在一个表单中我们通常是要获取被选中的那个radio项的值,所以要加checked来筛选,比如有以下的一些radio项:<inputtype="radio"name="testradio"value="jquery获取radio的值"/><inputtype="radio"name="testradio"value="jquery获取checkbox的值&quo......