我最近买了一个HTML模板,它包含许多放在bower_components目录中的插件和一个package.js里面的文件.我想安装另一个我喜欢的包,但决定npm用于此目的.
当我输入:
npc install pnotify
node_modules 已创建包含约900个目录与另一个包.
那些是什么?为什么他们和我的包装一起安装?我做了一些研究,结果证明那些是必需的,但实际上,我是否需要在生产中提供数百个不必要的包?
我有一个保存的 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)
不是重复的。这是关于设置,而不是获取嵌套字典。
我在 React 的输入字段中遇到了一个奇怪的问题。我知道hidden输入不会触发input或change事件。然而,即使我手动触发它们,React 的onChange事件仍然没有被调用。
我在这里同时触发change和input事件,因为 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) 我的项目解决方案当前有三个项目:
.NET Framework 4.7)-WPF,特定于用户界面,.NET Standard 2.0)-保存模型以及所有“幕后”数据.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?对于我而言,毫无意义,因为它引用了没有使用它的项目依赖项。
我尝试了什么:
copy local为True,我想向 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 ×3
typescript ×2
c# ×1
css ×1
dependencies ×1
dictionary ×1
dll ×1
dom-events ×1
extending ×1
methods ×1
node.js ×1
npm ×1
package ×1
puppeteer ×1
python ×1
python-2.7 ×1
reactjs ×1