小编Ada*_*dam的帖子

使用__block和__weak

我已经读完了这个帖子:"__block"关键字是什么意思?讨论了什么__block用于但我对其中一个答案感到困惑.它说__block是用来避免保留周期,但它下面的评论让我不确定.

我正在使用这样的东西:

 self.someProperty = x; //where x is some object (id)
 __block __weak VP_User *this = self;

 //begin a callback-style block
     this.someProperty = nil;
Run Code Online (Sandbox Code Playgroud)

我需要同时使用__block__weak?看起来这种方式有什么明显的问题吗?

weak-references objective-c objective-c-blocks

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

setup-node正在恢复缓存,但仍然需要一段时间才能纱线

因此setup-node github 操作使用以下配置缓存 node_modules:

      - uses: actions/setup-node@v2
        with:
          node-version: '14.15.5'
          cache: 'yarn'
Run Code Online (Sandbox Code Playgroud)

我可以看到它恢复了缓存。

/home/runner/.cache/yarn/v6
Received 0 of 138278798 (0.0%), 0.0 MBs/sec
Received 113246208 of 138278798 (81.9%), 53.4 MBs/sec
Received 138278798 of 138278798 (100.0%), 55.8 MBs/sec
Cache Size: ~132 MB (138278798 B)
/usr/bin/tar --use-compress-program zstd -d -xf /home/runner/work/_temp/b44b9064-7157-4afd-a342-f81e1005ef1d/cache.tzst -P -C /home/runner/work/app-frontend/app-frontend
Cache restored successfully
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时yarn --frozen-lockfile(我们总是提交我们的锁文件)

我看到这个输出:

Run yarn --frozen-lockfile
yarn install v1.22.17
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
...
Run Code Online (Sandbox Code Playgroud)

并且该步骤仍需要 44 秒。

我很困惑为什么会发生这种情况。 …

yarnpkg github-actions

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

flexbox | 弹出项目被推出包含div(关闭屏幕)

我正在使用flexbox布局来设置过去任务列表的样式.任务描述和时间总是变化很大.

一切都看起来很棒,直到输入的任务描述足够长以包裹到第二行,然后将"时间"项目(在屏幕的最右侧)略微向右推 - 离开屏幕 - 隐藏一些内容.

你可以在下面看到完整的简短描述,但是很长的一个会将屏幕上的"00:08"推出,并且任务描述也会向左移动!

柔性项目推闭屏铬

这是代码的小提琴(根据Stackoverflow的规则在下面).如果您调整包含结果的窗格的大小, '00:08'不会从页面上掉落,但它确实向右移动太远.

上面的屏幕截图是在Chrome或Safari(我使用的两个浏览器)缩小窗口宽度直到描述包装到第二行时.

如果可能的话,我想按照第一个(简短描述)行显示所有内容!并且还要理解为什么它的行为与目前一样.

PS我试过使用浮动并使用表格显示布局,但这两种技术都引起了相当多的错误,主要是因为内容的长度可变(所以请不要将它们作为替代品:)).

ul {
      margin:0;
      padding: 0;
    }
    #tasklist{
      width: 100%;
    }
    
      .task-one-line{
        display: flex;
        flex-direction:row;
        flex-wrap: nowrap;
        justify-content: space-between;
        align-item: baseline; /*flex-end*/
        display: -webkit-flex;
        -webkit-flex-direction:row;
        -webkit-flex-wrap: nowrap;
        -webkit-justify-content: space-between;
        -webkit-align-item: baseline; 
        border-bottom: 1px solid #d3d3d3;
        width: 100%;
      }
    
        .task-one-line i{
          width:1.5em;
          padding: 0.5em 0.3em 0.5em 0.3em;
          /*border: 1px solid green;*/
        }
    
          span.task-desc{
            flex-grow: 5;
            -webkit-flex-grow: 5;
            text-align:left;
            padding: 0.3em 0.4em 0.3em 0.4em;
            /*border: …
Run Code Online (Sandbox Code Playgroud)

css flexbox

12
推荐指数
2
解决办法
3万
查看次数

反应路由器延迟组件不起作用

所以这有效:

import Page from 'components/Page';
...

render() {
   return (
     <Route render={props => <Page {...props}/>}/>
   );
}
Run Code Online (Sandbox Code Playgroud)

但这不会:

import React, { lazy } from 'react';
const Cmp = lazy(() => import('components/Page'));
...

render() {
   return (
     <Route render={props => <Cmp {...props}/>}/>
   );
}
Run Code Online (Sandbox Code Playgroud)

反应 16.8.6 反应路由器 5.0.0

我明白了:

The above error occurred in one of your React components:
    in Unknown (at configured.route.js:41)
    in Route (at configured.route.js:41)
    in ConfiguredRoute (created by Context.Consumer)
    ...rest of stack trace
Run Code Online (Sandbox Code Playgroud)

谁能看到我在这里做什么愚蠢的事情?

lazy-loading reactjs react-router

10
推荐指数
1
解决办法
4222
查看次数

与目标c中的null比较

我开始发现我的代码乱丢:

if([p objectForKey@"somekey"] != [NSNull null]) {

}
Run Code Online (Sandbox Code Playgroud)

NULL的缩写(字符方式)是否较短?

背景:我使用SBJson库来解析JSON字符串,并且对于某些键,通常存在空值(按设计).

objective-c

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

Bootstrap函数声明

我正在浏览引导程序JS源代码,我遇到了一些我以前没见过的东西:

+function ($) { "use strict";
//...
}(window.jQuery);
Run Code Online (Sandbox Code Playgroud)

函数声明前面的+处理是什么?是否可以缓解一些潜在的缩小问题?

我相信在表达式类型之前放置一个+会将表达式的结果转换为数字,但我不知道它的相关性是什么.

感谢任何能为我揭示这一点的人.

javascript twitter-bootstrap iife

8
推荐指数
1
解决办法
1672
查看次数

AJV:没有带有密钥或参考“https://json-schema.org/draft-07/schema”的模式

我使用的是ajv 8.6.2

我有使用默认导出针对 Draft-07 进行验证的架构

当我使用Draft-09 导出时,我的所有架构都会出现此错误:

no schema with key or ref "https://json-schema.org/draft-07/schema"
Run Code Online (Sandbox Code Playgroud)

如果我使用这个,也会出现同样的错误:

no schema with key or ref "https://json-schema.org/draft-09/schema"
Run Code Online (Sandbox Code Playgroud)

似乎无法弄清楚这里发生了什么?

ajv

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

列postgres函数的默认值带参数

我有一个postgres函数,它接受一个参数.我想使这个函数成为列的默认值,但我不知道如何将参数传递给表定义.

这就是我的意思,我在表中有两列如下所示:

trade_id INTEGER NOT NULL
group_id INTEGER DEFAULT trade_id_f(argument_goes_here);
Run Code Online (Sandbox Code Playgroud)

我想使DEFAULT价值group_id是的返回值trade_id_f(trade_id),其中trade_idtrade_id记录的插入.

我是postgres函数的新手,这可能吗?

postgresql

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

更改月份时,Javascript日期看起来有误

我的眼睛一定是在欺骗我,但是当我打电话时setMonth(1),那个日期对象的日期不应该是二月吗?(今天是2016年3月30日)

x = new Date();
y = new Date();
x.setMonth(1);

document.write(x.toString() + '<br>' + y.toString());
Run Code Online (Sandbox Code Playgroud)

结果是:

javascript

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

你如何开玩笑地模拟模块的某些部分?

我已经建立了一个日历moment.js,我现在正在进行单元测试。

我解决的第一个问题是测试运行时日期将如何变化,因此我已经能够使用此指南锁定时刻。

目前,我陷入了一个错误:

“类型错误:无法读取未定义的属性‘weekdaysShort’”

我的代码有一行: const dateHeaders = moment.weekdaysShort();

通过实现 mocked moment().format(),我基本上失去了库的其余部分。

我的直接问题是如何设置 jest 让我返回您从中获得的数组moment.weekdaysShort();

我更大的问题是我是否走错了路,是否应该想出另一种策略。

我尝试过但结果不成功的事情

  1. weekdayShort函数中手动添加:
const mockMoment = function() {
  return {format: '2016–12–09T12:34:56+00:00'}
};

mockMoment['weekdaysShort'] = () => ['Sun', 'Mon', 'Tues']; // etc etc etc

jest.mock('moment', () => mockMoment);
Run Code Online (Sandbox Code Playgroud)
  1. __mocks__文件夹中组装手动模拟。我没有走得太远,因为我开始觉得我必须将整个 Moment.js 库复制/粘贴到模拟中。虽然弄清楚他们如何做他们所做的事情会很酷,但这是另一天的项目。
  2. jest.spyOn - 不起作用,因为我没有监视模块。

在这一点上,我正在考虑放弃Moment通过 props 传入的数组的函数。虽然我相信这会让我克服这个问题,但感觉之后我会很快遇到另一个障碍。

在此先感谢您的帮助。

javascript unit-testing momentjs reactjs jestjs

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