小编Mat*_*oak的帖子

反应背景中的内联样式:线性渐变

我正在尝试使用background具有 alinear-gradient但未应用该样式的内联样式。

这是我的代码:

 <div className="card" style={{background:"linear-gradient(to bottom, Transparente 0%,Transparente 50%,red 50%,red 100%)"}}/>
Run Code Online (Sandbox Code Playgroud)

当我为我的背景添加“简单”颜色时,意思是 no linear-gradient,它运行良好。

<div className="card" style={{background:"red"}}/>
Run Code Online (Sandbox Code Playgroud)

提前致谢。

html javascript css reactjs

20
推荐指数
7
解决办法
3万
查看次数

即使未明确使用“componentWillMount”,“componentWillMount”警告也可见

在我的代码中,我没有任何显式使用componentWillMount,但在运行webpack.

react-dom.development.js:12386 警告:componentWillMount 已重命名,不推荐使用。有关详细信息,请参阅 https:/fb.me/react-unsafe-component-lifecycles。

  • 将有副作用的代码移动到 componentDidMount,并在构造函数中设置初始状态。
  • 将 componentWillMount 重命名为 UNSAFE_componentWillMount 以在非严格模式下抑制此警告。在 React 17.x 中,只有 UNSAFE_ 名称有效。要将所有已弃用的生命周期重命名为其新名称,您可以npx react-codemod rename-unsafe-lifecycles在项目源文件夹中运行。

请更新以下组件:foo、bar

我确实运行了建议的npx react-codemod rename-unsafe-lifecycles,但警告并没有消失,只是将其措辞更改为

react-dom.development.js:12386 警告:componentWillMount 已重命名,不推荐使用。[...]

在这里,foobar都是我们团队编写的自定义组件,以及外部库的一些组件。对 Visual Studio 解决方案的完整搜索componentWillMount没有给我任何结果。有人可以解释一下我做错了什么吗?

我在另一个问题上读到一条评论,说明

我没有任何明确的地方 with componentWillMount,但在构造函数之后我确实有 [...] 一行代码,其中state={ tabindex:0 }如何将其“移动”到构造函数中?

答案是写 constructor(props) {super(props); this.state = { tabindex:0 }}。有人可以解释一下这里发生了什么吗?我必须在我们的代码中寻找什么样的模式?

更多细节

    printWarning    @   react-dom.development.js:12386
lowPriorityWarningWithoutStack  @   react-dom.development.js:12407
./node_modules/react-dom/cjs/react-dom.development.js.ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings   @   react-dom.development.js:12577
flushRenderPhaseStrictModeWarningsInDEV @   react-dom.development.js:25641 …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-props

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

Typescript 将未知类型转换为接口类型

我想编写一个函数asA,它接受类型参数unknown并将其作为特定接口类型返回A,或者如果参数与接口类型不匹配则抛出错误A

该解决方案应该是稳健的。即,如果向我的接口类型添加一个新字段A,编译器应该抱怨我的函数缺少对新字段的检查,直到我修复它。

下面是此类函数的示例asA,但它不起作用。编译器说:

元素隐式具有“any”类型,因为类型“a”的表达式不能用于索引类型“{}”。类型“{}”上不存在属性“a”。(7053)

interface A {
    a: string
}

function asA(data:unknown): A {
    if (typeof data === 'object' && data !== null) {
        if ('a' in data && typeof data['a'] === 'string') {
            return data;
        }
    }
    throw new Error('data is not an A');

}

let data:unknown = JSON.parse('{"a": "yes"}');
let a = asA(data);
Run Code Online (Sandbox Code Playgroud)

如何编写asA如上所述的函数?

我可以使用类型转换,例如(data as any)['a'],只要将新字段添加到 时不会出现静默失败A

typescript

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

使用PowerShell启动Metro风格的应用程序

我正在尝试为Windows 10编写一个powershell脚本,它将自动启动Metro风格的应用程序.Start-Process cmdlet似乎应该可以工作,但除非我提供.exe的路径,否则我无法启动它

例如,以下输入有效:

    Start-Process 'C:\Program Files\Internet Explorer\iexplore.exe'
Run Code Online (Sandbox Code Playgroud)

不幸的是,Metro风格的应用程序没有可执行文件.我需要用什么文件来启动它们?例如,如果我想启动Windows应用商店,我该怎么做?

谢谢

start-process powershell-3.0 appx windows-10 uwp

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

JS 通过 event.target 获取被点击的元素

我正在尝试使用 JavaScript 来获取单击元素的信息。

这是jsFiddle

下面是我的代码。

let div = document.querySelector('div')
div.addEventListener('click', function(event) {
  // how to get the clicked p tag here?
  // this?
  // event.target.currentTarget?
})
Run Code Online (Sandbox Code Playgroud)
<div>
  <p>text 1</p>
  <p>text 2</p>
</div>
Run Code Online (Sandbox Code Playgroud)

我怎样才能this获取元素的信息?

答案: event.target 谢谢胡安·门德斯

javascript

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

无法在react应用程序中使用Ant design的Drawer

我正在尝试将 Ant Design 的Drawer组件合并到我的 React 应用程序中,但由于某种原因,我无法打开抽屉,甚至无法在检查页面时出现在源代码中。我可以在另一个项目中使用它,并且我在package.json另一个项目的文件中注意到我有"antd": "^4.2.5",而在我当前的项目中package.json我有"antd": "^4.3.2"。然而,在更改版本后,我遇到了同样的问题。然后我实际上只是将其他项目的代码复制到我当前的项目中,但没有效果。我删除了node_modules,我重新运行npm install,此时我只是尝试渲染DrawerAnt Design 提供的基本示例,但它根本没有渲染。

这是我的package.json文件。

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "antd": "^4.3.2",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.1"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not …
Run Code Online (Sandbox Code Playgroud)

drawer reactjs antd

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

sed 中的全局标志是什么?

我开始了解全局 ( /g) 标志,这意味着该操作应该在文件中全局发生。

如果我想用“再见空间”替换“hello world”的所有实例,我会/g在语句末尾添加。

这就说得通了。然而...

我正在编写一个sed替换命令,并注意到即使我不包含/g它,它仍然会替换文件中的所有实例。以下是我的文件的内容.txt

hello there
how is life
today is over
today is over
don't be sad
today is over
tomorrow is a new day
Run Code Online (Sandbox Code Playgroud)

现在,我想归档所有这些“今天结束”行,并将它们替换为“明天将开始”。因此,我编写了以下代码:

YOUR_FILE='testing.txt'
LINE="today is over"

sed -i "" "s/$LINE/tomorrow will begin/" $YOUR_FILE
Run Code Online (Sandbox Code Playgroud)

尽管末尾不包含全局标志,但它仍然用 替换所有today is over实例tomorrow will begin

有人可以向我解释这种行为吗,因为我还没有找到任何相关信息。为什么即使我省略了/g最后的部分,它也会替换所有实例?

或者,如果我只想删除第一个实例,我将如何指定它?

我正在 Mac 上执行此操作。

macos bash shell sed

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

升级Angular 8后,将Angular脚本插入HTML文档的开头

我从Angular 7.2升级到Angular 8,现在所有Angular脚本都插入到HTML的最开始(在之前!DOCTYPE)。

这是错误吗?有谁知道是什么原因造成的?

<script src="runtime.js" defer></script><script src="polyfills-es5.js" nomodule defer></script><script src="polyfills.js" defer></script><script src="styles.js" defer></script><script src="scripts.js" defer></script><script src="vendor.js" defer></script><script src="main.js" defer></script><!DOCTYPE html>
<html>

<head>
    <base href="/my-app/" />
    <title>My App</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="icon" type="image/x-icon" href="favicon.ico?v=2" />
    <script src="./ng-app-settings.js"></script>
</head>
<app>Loading...</app>
<script type="text/javascript" src="//use.typekit.net/abcdefg.js"></script>
<script type="text/javascript">try { Typekit.load(); } catch (e) { }</script>
</html>
Run Code Online (Sandbox Code Playgroud)

我的原始HTML非常标准。唯一奇怪的是ng-app-settings.js脚本,该脚本会为应用程序配置加载一些JSON,并为字体使用TypeKit服务。这些都不对Angular 7造成问题。

<!DOCTYPE html>
<html>

<head>
    <base href="/" />
    <title>My App</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link …
Run Code Online (Sandbox Code Playgroud)

javascript upgrade angular

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

Ruby:从数组中删除所有非字符串元素

我正在尝试用 ruby​​ 编写一个函数,给定一个具有不同数据类型的数组,返回一个仅包含字符串元素的新数组。例如,给定数组:

arr = [1, 3, 'hello', 'goodbye', 20, 'arrays are fun']
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数来返回一个新数组,如下所示:

new_arr = ['hello', 'goodbye', 'arrays are fun']
Run Code Online (Sandbox Code Playgroud)

ruby 中是否有内置函数来完成给定数组中数据类型的分离?我能够用下面的循环来完成它。

result = arr.select do |elem|
   elem.is_a? Integer
end
Run Code Online (Sandbox Code Playgroud)

但我想知道 Ruby 是否有一个内置函数来实现循环正在做的事情,比如,arr.integers它接受一个数组并且只返回整数。

ruby arrays

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