aro*_*lie 6 javascript reactjs react-native redux react-hooks
每次您输入此网址: https: //picsum.photos/200时,都会显示不同的图像。我希望我的 React 组件使用此 url 每 5 秒渲染一个不同的图像,但我做不到。这是我的代码:
import { useEffect, useState } from "react";
const VariableImage = () => {
const imageUrl = "https://picsum.photos/200";
const [image, setImage] = useState(imageUrl);
useEffect(() => {
setInterval(() => {
const newImage = new Image();
newImage.src = imageUrl;
setImage(imageUrl);
}, 5000);
}, [imageUrl]);
return (
<>
<img src={image} alt="scenery" height="200" width="200" />
</>
);
};
export default VariableImage;Run Code Online (Sandbox Code Playgroud)
图像在第一次渲染中显示,但稍后不会更改。如果有人可以帮助我,我将非常感激。谢谢。
将虚拟随机查询参数添加到外部 URL,以强制浏览器发出新请求(并为您提供新图像)。
这样做new Image对你没有任何帮助——你可以完全放弃它。
const { useEffect, useState } = React;
const imageUrl = "https://picsum.photos/200";
const VariableImage = () => {
const [src, setSrc] = useState(imageUrl);
useEffect(() => {
setInterval(() => {
setSrc(imageUrl + '?forcerefresh=' + Math.random());
}, 5000);
}, []);
return <img src={src} alt="scenery" height="200" width="200" />;
};
ReactDOM.createRoot(document.querySelector('.react')).render(<VariableImage />);Run Code Online (Sandbox Code Playgroud)
<script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<div class='react'></div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |