小编RA.*_*RA.的帖子

npm安装许多依赖项

我最近买了一个HTML模板,它包含许多放在bower_components目录中的插件和一个package.js里面的文件.我想安装另一个我喜欢的包,但决定npm用于此目的.

当我输入:

npc install pnotify

node_modules 已创建包含约900个目录与另一个包.

那些是什么?为什么他们和我的包装一起安装?我做了一些研究,结果证明那些是必需的,但实际上,我是否需要在生产中提供数百个不必要的包?

javascript css package node.js npm

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

深集python字典

我有一个保存的 Python 字典键列表:

['level_one', 'level_two', 'test']

这些是字典的键:

mydict = {
    'level_one' : {
        'level_two' : {
            'test' : "Hello World"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

通常我可以这样设置test键:

mydict['level_one']['level_two']['test'] = "Hello StackOverflow"

不幸的是,列表/字典是即时生成的,我不知道它能走多远。是否有可能在不使用大括号的情况下通过键列表更新 dict 键?

我只能反映这个获取字符串的功能:

def deepGet(sourceDict, *keys):
    return reduce(lambda d, k: d.get(k) if d else None, keys, sourceDict)

> deepGet(mydict, *['level_one', 'level_two', 'test'])
>> Hello World
Run Code Online (Sandbox Code Playgroud)

不是重复的。这是关于设置,而不是获取嵌套字典。

python dictionary python-2.7

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

隐藏输入不会触发 React 的 onChange 事件

我在 React 的输入字段中遇到了一个奇怪的问题。我知道hidden输入不会触发inputchange事件。然而,即使我手动触发它们,React 的onChange事件仍然没有被调用。

我在这里同时触发changeinput事件,因为 ReactonChange实际上就是input事件。当我在inputRef( addEventListener("change", () => { ... }))上设置事件侦听器以进行测试时,它被毫无问题地调用。然而,事实证明 React 在拦截它时遇到了一些问题。

这是我当前的代码:

const [fieldValue, setFieldValue] = useState(0);
const inputRef = useRef<HTMLInputElement>(null);

const handleClick = useCallback((): void => {
    if (inputRef.current) {
        inputRef.current.dispatchEvent(new Event("change", { bubbles: true }));
        inputRef.current.dispatchEvent(new Event("input", { bubbles: true }));
    }

    setFieldValue(prev => prev + 1);
}, []);
Run Code Online (Sandbox Code Playgroud)

JSX:

<input type="hidden" ref={inputRef} value={fieldValue} onChange={(e) => …
Run Code Online (Sandbox Code Playgroud)

javascript dom-events typescript reactjs

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

引用的项目依赖项DLL不被复制

我的项目解决方案当前有三个项目:

  1. MyProject,这是我的主要启动项目(使用.NET Framework 4.7)-WPF,特定于用户界面,
  2. MyProject.Core-类库(.NET Standard 2.0)-保存模型以及所有“幕后”数据
  3. MyProject.Relational-类库(.NET Standard 2.0)-负责处理和保存数据库特定的信息

Project 1(主要)已为project 2和设置了引用3

对于项目,3我已经安装了的NuGet依赖项Microsoft.EntityFrameworkCore.Sqlite (2.0.3)

现在,当我最终想要使用项目3并调用它的方法时,将引发以下异常:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=2.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

当然,这是一个丢失的DLL文件-没有实体框架DLL被复制到app Debug目录。

为什么会这样呢?这是预期的行为吗?我是否还必须安装Microsoft.EntityFrameworkCore.Sqlitefor项目的依赖项1?对于我而言,毫无意义,因为它引用了没有使用它的项目依赖项。

我尝试了什么:

  • 清理项目,删除bin / obj目录,
  • 将项目参考属性设置设置copy localTrue
  • 在此问题中给出的解决方案: …

c# dll dependencies .net-assembly visual-studio-2017

4
推荐指数
1
解决办法
505
查看次数

向 puppeteer.Page 对象添加自定义方法

我想向 puppeteer.Page 对象添加自定义方法,这样我就可以像这样调用它们:

let page = await browser.newPage();
page.myNewCustomMethod();
Run Code Online (Sandbox Code Playgroud)

这是我创建的众多自定义方法之一。它使用表达式数组通过 XPath 表达式找到第一个可用元素:

const findAnyByXPath = async function (page: puppeteer.Page, expressions: string[]) {
    for (const exp of expressions) {
        const elements = await page.$x(exp);

        if (elements.length) {
            return elements[0];
        }
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

我必须像这样调用它......

let element = await findAnyByXPath(page, arrayOfExpressions);
Run Code Online (Sandbox Code Playgroud)

对我来说,这在编辑器中看起来很奇怪,尤其是在调用许多自定义方法的区域中。在我看来,有点“断章取义”。所以我宁愿这样调用它:

page.findAnyByXPath(arrayOfExpressions);
Run Code Online (Sandbox Code Playgroud)

我知道有一个page.exposeFunction方法,但这不是我要找的。

有什么方法可以实现这一目标?

javascript methods extending typescript puppeteer

4
推荐指数
1
解决办法
1425
查看次数