【发布时间】:2021-01-19 01:57:49
【问题描述】:
我正在使用 CRA 创建的反应应用中显示图像。每次我重新加载网页时,图像都会奇怪地闪烁,如下所示。
最初的图片:
闪烁后的图像(实际要求):
代码:
styles.css:
img {
width: 200px;
height: 300px;
object-fit: cover;
}
app.tsx
import React from 'react';
import foo from './foo.jpg';
import './styles.css';
const App = () => <img src={foo} alt="foo" />;
export default App;
package.json
{
"name": "xyz",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.5.0",
"@testing-library/user-event": "^7.2.1",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "3.4.3"
},
"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 dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
注意事项:
- 该应用是一个注入样板,没有安装任何第三方库,也没有安装除此图像之外的任何其他组件。
- 如果
object-fit: cover;属性为 从样式表中删除,但这是为了防止图像被 像初始图像一样奇怪地拉伸/收缩。 - 如果问题无法重现,请保持开发者控制台打开或尝试将网络更改为任何 3G 预设。我可以通过重复重新加载轻松重现。
- 我相信
object-fit: cover属性最初不会应用于图像,需要几毫秒才能启动。 - 请注意,DOM 结构未显示在开发者控制台的初始图像中。
- 任何 CSS 属性的替代项 也会有所帮助。
【问题讨论】:
-
尝试做一个codeandbox
-
@DennisVash 在代码和框上无法重现。
-
为什么不呢?它也应该在沙箱中闪烁
-
@DennisVash 我相信 Codesandbox 不会在实际浏览器中呈现 React 应用程序,我们看到的只是 React 在其平台上的 div 中呈现。因此,如果我重新加载代码和框,它将无法像系统上的实际浏览器那样工作。如果我尝试通过单击那里提供的重新加载图标来重新加载,情况也是如此。
-
这不是它的工作原理......您实际上是说您在浏览器中运行浏览器,codesandbox 只是呈现您编写的代码,您可以检查它并自己查看,而且它具有 CRA 启动器所以它完全模拟任何机器
标签: javascript html css reactjs redux