小编Vin*_*rma的帖子

React JS:使用 object-fit 重新加载时图像大小闪烁:覆盖 CSS 属性

我正在使用 CRA 创建的 React 应用程序中显示图像。每次我重新加载网页时,图像都会奇怪地闪烁,如下所示。

\n

最初的图像:

\n

在此输入图像描述

\n

闪烁后的图像(实际要求):

\n

在此输入图像描述

\n

代码:

\n

样式.css:

\n
img {\n  width: 200px;\n  height: 300px;\n  object-fit: cover;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

应用程序.tsx

\n
import React from \'react\';\nimport foo from \'./foo.jpg\';\n\nimport \'./styles.css\';\n\nconst App = () => <img src={foo} alt="foo" />;\n\nexport default App;\n
Run Code Online (Sandbox Code Playgroud)\n

包.json

\n
{\n  "name": "xyz",\n  "version": "0.1.0",\n  "private": true,\n  "dependencies": {\n    "@testing-library/jest-dom": "^4.2.4",\n    "@testing-library/react": "^9.5.0",\n    "@testing-library/user-event": "^7.2.1",\n    "react": "^16.13.1",\n    "react-dom": "^16.13.1",\n    "react-scripts": "3.4.3"\n  },\n  "scripts": {\n    "start": "react-scripts start",\n    "build": "react-scripts build",\n    "test": "react-scripts …
Run Code Online (Sandbox Code Playgroud)

html javascript css reactjs redux

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

React:更新的状态未反映在递归 useCallback 中

我正在增加foo一个名为recursively的useCallback钩子。但是,增加的值不会反映在回调中。foo

const { useState, useCallback } = React;

const App = () => {
  const [foo, setFoo] = useState(0);

  const recursiveCallback = useCallback(() => {
    // always logs 0
    console.log(foo);

    // incrementing foo
    setFoo(foo + 1);

    setTimeout(() => {
      // recursive call
      recursiveCallback();
    }, 250);
  }, [foo]);

  return <button onClick={recursiveCallback}>Click Me</button>;
}

ReactDOM.render(<App />,document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
<div id="root"></div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.1/umd/react-dom.production.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs redux react-hooks

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

Javascript:条件变量声明有更好的简写吗?

我有两个变量foo&bar并且我想基于condition.

我已经从这里缩短了代码:

let foo = '';
let bar = '';

if (condition) {
  foo = 'hi';
  bar = 'bye';
} else {
  foo = 'bye';
  bar = 'hi';
}
Run Code Online (Sandbox Code Playgroud)

对此:

const foo = condition ? 'hi' : 'bye';
const bar = !condition ? 'hi' : 'bye';
Run Code Online (Sandbox Code Playgroud)

我仍然觉得代码重复使用两次三元运算符。无论如何我可以缩短这段代码吗?谢谢 :)

javascript destructuring

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

CSS:如何使文本从顶部和底部淡入淡出?

我需要从顶部和底部淡出段落。但我只能从任一侧褪色。

\n

HTML:

\n
<p className="bottom-overflow-fade">\n  {content}\n</p>\n
Run Code Online (Sandbox Code Playgroud)\n

CSS:

\n
.bottom-overflow-fade {\n  mask-image: linear-gradient(to bottom, black 80%, transparent 100%);\n  -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%);\n}\n\n.top-overflow-fade {\n  mask-image: linear-gradient(to top, black 80%, transparent 100%);\n  -webkit-mask-image: linear-gradient(to top, black 80%, transparent 100%);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

当前结果:

\n

在此输入图像描述

\n

问题:

\n

如果我将这两个类名添加到段落中,淡入淡出将\xe2\x80\x99t 工作。如果我使用其中任何一个,那么顶部和底部的淡入淡出效果都很完美。是否可以将这两个 CSS 属性合并为一个,以便顶部和底部淡入淡出都起作用?

\n

注意:我不是在谈论任何动画。

\n

html css linear-gradients css-mask

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

Docker 桌面无法在 Mac 上打开

Docker Desktop 图标在扩展坞上短暂闪烁,但它没有\xe2\x80\x99 启动。它静静地崩溃,屏幕上没有任何错误消息。该com.docker.diagnose工具无法从终端进行诊断,下面附有终端的输出。

\n

输出/Applications/Docker.app/Contents/MacOS/com.docker.diagnose check

\n
\xe2\x9e\x9c  ~ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check\nStarting diagnostics\n\n[PASS] DD0027: is there available disk space on the host?\n[SKIP] DD0028: is there available VM disk space?\n[FAIL] DD0031: does the Docker API work? Cannot connect to the Docker daemon at unix://docker.raw.sock. Is the docker daemon running?\n[1]    3128 killed     /Applications/Docker.app/Contents/MacOS/com.docker.diagnose check\n
Run Code Online (Sandbox Code Playgroud)\n

输出/Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather --upload

\n
\xe2\x9e\x9c  ~ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather --upload\nGathering diagnostics for ID 4DC1603E-1354-4CA3-BB31-4E0C839D67C2/20220819183640 into /var/folders/q1/9nwl1r8s4hgcp4q8_grx1kvmw56qkc/T/4DC1603E-1354-4CA3-BB31-4E0C839D67C2/20220819183640.zip.\nThis may take up to 15 minutes.\ntime="2022-08-20T00:06:40+05:30" level=info msg="Triggering …
Run Code Online (Sandbox Code Playgroud)

docker docker-desktop

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

Mediarecorder:如何在 Safari、IE 11 上支持录音?

问题陈述

嗨,我想MediaRecorder在我的IE 11Safari应用程序中使用API添加对录音的支持,但到目前为止什么都没有。是否有任何可用的polyfills可以帮助我在这些浏览器中添加对相同内容的支持?

苹果浏览器:

我可以看到Safari确实MediaRecorder实验性功能下支持 API ,但即使提供了适当的 mime 类型audio/webm,它似乎也不能正常工作,它总是返回一个video/mp4mime 类型的 blob 。

IE 11:

这是一块古老的垃圾,我只能这么说:)

代码:

const stream = await navigator.mediaDevices.getUserMedia({
  audio: true,
  video: false,
})


const mimeType = 'audio/webm'

// check if above mime type is supported in browser and instantiate recorder
if (MediaRecorder.isTypeSupported(mimeType)) {
  this.recorder = new MediaRecorder(this.stream, { mimeType })
} else {
  this.recorder = new MediaRecorder(this.stream)
}

recorder.start() …
Run Code Online (Sandbox Code Playgroud)

html javascript reactjs web-mediarecorder redux

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

创建 React 应用程序:ESLint 配置不适用于 Typescript

我使用 CRA (打字稿模板)创建了一个反应应用程序,而 TypeScript 没有遵循 ESLint 配置中编写的规则。这对我来说很奇怪,因为我在我设置的每个 React 项目中都使用了这个配置。我在下面分享一些可能有用的信息。

.eslintrc

TypeScript 没有遵循下面编写的任何规则。

{
  "parser": "@typescript-eslint/parser",
  "plugins": ["react-hooks"],
  "extends": ["airbnb-typescript", "plugin:@typescript-eslint/recommended"],
  "parserOptions": { "project": "./tsconfig.json" },
  "rules": {
    "react/prop-types": "off",
    "quotes": ["error", "single"],
    "newline-before-return": "error",
    "import/prefer-default-export": "off",
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "error",
    "lines-between-class-members": "error",
    "import/newline-after-import": ["error", { "count": 1 }],
    "comma-dangle": [
      "error",
      {
        "arrays": "always-multiline",
        "objects": "always-multiline",
        "imports": "always-multiline",
        "exports": "always-multiline",
        "functions": "always-multiline"
      }
    ]
  },
  "ignorePatterns": [
    "config",
    "public",
    "scripts",
    "serviceWorker.ts",
    "setupTests,ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

配置文件

{
  "compilerOptions": {
    "target": …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs eslint redux typescript-eslint

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

TypeScript:一个依赖于另一个的接口属性

是否可以键入依赖于另一个的接口属性?

例如我有:

const object = {
  foo: 'hello',
  bar: { hello: '123', },
}
Run Code Online (Sandbox Code Playgroud)

我想确保bar的键必须是foo的值。

interface ObjectType = {
  foo: string;
  bar: { hello: string; } // instead of hardcoding have something like this? --> payload: { ValueOfFoo: string; }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!:)

javascript angularjs typescript reactjs react-redux

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

JavaScript:为什么递归不会停止?

如果我foo++用 a换行,为什么递归不会停止setTimeout?我很确定我错过了有关异步操作的主要 JavaScript 概念。

let foo = 0;

const bar = () => {
  setTimeout(() => foo++);

  if (foo <= 2) {
    bar();
  }
}

bar();
Run Code Online (Sandbox Code Playgroud)

javascript recursion asynchronous callback settimeout

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

JavaScript:切换非布尔值的简写

有更好的速记来切换吗foo

type Foo = 'BAR' | 'BAZ';

let foo: Foo = 'BAR';

const toggleFoo = () => {
  foo = foo === 'BAR' ? 'BAZ' : foo;
};

toggleFoo();
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs react-native redux

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