小编fra*_*al5的帖子

Android Studio - 查看布局的文本和设计预览

在Android Studio中,如何并排查看XML布局的文本和设计预览.

我在安装Studio时默认可以看到它,但现在已经不见了,我不知道为什么.我只能看到或其他.

我该如何重新启用它?

android-studio

55
推荐指数
4
解决办法
3万
查看次数

IE11 - 对象不支持此操作 - URL对象 - 解决方法

我正在尝试使用此命令将URL字符串转换为URL对象:

var newUrl = new URL("http://www.testsite.com?name=abc&class=123");
Run Code Online (Sandbox Code Playgroud)

它适用于Chrome和Firefox,但不适用于IE11.有没有已知的解决方法?

谢谢.

url internet-explorer-11

13
推荐指数
1
解决办法
5911
查看次数

PHP - 在对象数组中按键查找对象,更新其值

我有一个对象数组,并且想要更新其中一个对象的属性。

$objs = [ 
    ['value' => 2, 'key' => 'a'], 
    ['value' => 3, 'key' => 'b'] ,
];
Run Code Online (Sandbox Code Playgroud)

假设我想将 'key'=>'a' 的对象的 'value' 设置为 5。

除了迭代数组搜索键之外,还有其他更快/更有效的方法吗?

谢谢。

编辑:关于为什么我不能使用关联数组存在争议。这是因为这个数组是从 JSON 值获取的。

如果我的 JSON 对象是这样的:

"obj": {
    "a": {
        "key": "a", 
        "value": 2
    }, 
    "b": {
        "key": "b", 
        "value": 3
    }
}
Run Code Online (Sandbox Code Playgroud)

无法保证保留对象的顺序,而这是必需的。

因此,我需要在每个对象中都有一个索引,以便能够使用 对其进行排序usort()。所以我的 JSON 需要是:

"obj": {
    "a": {
        "key": "a", 
        "value": 2, 
        "index": 1
    }, 
    "b": {
        "key": "b", 
        "value": 3, 
        "index": 2
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不能usort() …

php object

7
推荐指数
1
解决办法
2万
查看次数

getStringExtra()的默认值(如果为空)

像getIntent()。getIntExtra一样,getStringExtra是否具有默认值,如果传递的字符串为空,则可以使用该默认值吗?

我有一种方法可以做到这一点,但我想知道是否存在实现此目标的方法?

谢谢。

java android android-intent

6
推荐指数
2
解决办法
4312
查看次数

Chrome无法使用分号保存Cookie

我正在尝试在javascript中使用此功能在我的网站上保存cookie

setCookie: function(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
    var expires = "expires=" + d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这在Chrome中不起作用.它虽然适用于Firefox.

如果我将分号更改为逗号而不是如下所示,则可以在Chrome中使用.但是属性被设置为cookie值的一部分,而不是浏览器可以读取的属性.

document.cookie = cname + "=" + cvalue + "," + expires + ",path=/";
Run Code Online (Sandbox Code Playgroud)

而且,这只是在上周开始发生的.有没有人注意到这一点?如果是这样,如果有解决方案吗?

谢谢.

更新:

日期格式似乎存在问题.我开始使用max-age而不是整数值秒,它现在工作正常,即使使用分号.

javascript cookies

5
推荐指数
1
解决办法
907
查看次数

TS - 将对象数组缩减为对象

我想将对象数组转换为对象

var arrays = [
    {key:'k1',value:'v1'},
    {key:'k2',value:'v2'},
    {key:'k3',value:'v3'}
];
Run Code Online (Sandbox Code Playgroud)

{k1: "v1", k2: "v2", k3: "v3"}
Run Code Online (Sandbox Code Playgroud)

这有效

const object: {[k: string]: any} = {};
arrays.forEach((item) => { object[item.key] = item.value });
Run Code Online (Sandbox Code Playgroud)

但我想知道如何使用reduce 来做到这一点。

const customData = arrays.reduce((obj, item) => (obj: Record<string, any>) => (obj[item.key] = item.value, obj), {});
Run Code Online (Sandbox Code Playgroud)

回报

(obj) => (obj[item.key] = item.value) 
Run Code Online (Sandbox Code Playgroud)

谢谢。

reduce typescript

5
推荐指数
2
解决办法
9292
查看次数

hashChange 的事件监听器

我正在尝试在 ReactJS 中为我​​的页面添加一个事件侦听器。我已将其添加到 componentDidMount() 中。但仅在初始页面加载时触发。

每当地址栏中发生变化时,我如何才能触发它。

componentDidMount:function(){

        window.addEventListener("hashchange", console.log('hashchange1'));
        $(window).bind("hashchange", console.log('$ - hashchange'));
        window.onhashchange =  console.log('hashchange3');      
        ReactDOM.findDOMNode(this).addEventListener('hashChange',console.log('ReactDOM - hashchange'));
    },
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的方法来让它工作,但它们都只在第一次加载时起作用。我究竟做错了什么?

谢谢。

addeventlistener hashchange reactjs

2
推荐指数
1
解决办法
6739
查看次数

正则表达式 - 十进制数中的可选点

我已经编写了两个允许以下格式的正则表达式:

  • X
  • X。
  • XY

其中 Y 可以是 1 或 2 位数字。而 X 是无限的。

正则表达式1: ^\d+(?:\.{0,1})(?:\d{1,2})?$

正则表达式2: ^\d+\.{0,1}(?:\d{1,2})?$

这个比那个好吗?

有没有更好的方法来写这个?

另外,为什么这个在点设置为可选的情况下不起作用: ^\d+(?:\.)(?:\d{1,2})?$

谢谢。

regex

2
推荐指数
2
解决办法
4990
查看次数

Laravel - 防止刷新时重新提交表单

当我刷新页面时,如何防止我的表单重新提交。我发现的解决方案建议重定向,我正在使用。

admin.enrollform.blade.php 中的表单:

    <form id="enrollform" class="form-horizontal" role="form" method="post"
      enctype="multipart/form-data"
      action="{{route('storeStudent', ['site' => $site->site_url, 'lang' => $lang] )}}">
      <input type="visible" name="_token" id="_token" value="{{ csrf_token() }}"/>
      ...
    </form>
Run Code Online (Sandbox Code Playgroud)

Laravel 控制器:

public function store(Request $request, $site, $lang = null)
{

    ....

    return view('admin.enrollform', [
        'message'       => $message
    ]);
}
Run Code Online (Sandbox Code Playgroud)

如果成功,控制器返回一个视图,它指向同一个页面。所以同一个页面再次加载,并带有一条消息。而且表格是空的。

但是,如果我此时单击刷新,表单将再次提交。我希望它只是刷新页面,无论是否有它从控制器收到的消息。

我有什么办法可以使用 CSRF 令牌来验证这一点吗?据我了解,CSRF 令牌仅验证会话是否有效,与表单本身无关。

谢谢。

forms laravel

2
推荐指数
1
解决办法
5730
查看次数

字符串末尾带有破折号不允许json_encode

我正在尝试使用substr($originalText,0,250); 从字符串中提取n个字符 ;

第n个字符是一个破折号。因此,当我在记事本中查看时,最后一个字符为–。在我的编辑器Brackets中,我什至无法打开日志文件,因为它仅支持UTF-8编码。

我也无法在此字符串上运行json_encode。

但是,当我使用时substr($originalText,0,251),它可以正常工作。我可以打开日志文件,它显示一个破折号而不是â€。json_encode也可以正常工作。

我可以使用它mb_convert_encoding($mystring, "UTF-8", "Windows-1252")来规避问题,但是谁能告诉我为什么最后加上这些字符会导致错误?此外,在执行此操作时,我的日志文件在方括号中显示“ –”,这也令人困惑。

我的问题是,为什么在字符串的末尾加上破折号,而不是在其他任何地方(后跟其他字符)。

希望我的问题很清楚,否则我可以尝试进一步解释。

谢谢。

php json utf-8 mb-convert-encoding

0
推荐指数
1
解决办法
173
查看次数