javascript - 当我点击浏览器时,UseEffect 不再运行
问题描述
我的产品页面有一排鞋品牌标志,如耐克、阿迪达斯等。下面是我们所有鞋子库存的图片。当用户点击一个品牌(例如耐克)时,网址会更改为 /nike 并过滤图像以仅显示耐克鞋。然后如果我点击阿迪达斯,网址将更改为 /adidas 并过滤以仅显示阿迪达斯鞋。但是,当我在浏览器上单击后退按钮时,URL 将变回 /nike,但图像仍然是 adidas。我有 useEffect 对brandId 的任何更改运行,这是用于过滤鞋子的道具。
这是我的代码:
import React, { useState, useEffect} from 'react'
import "../styles/ShoesPage.css"
import "../styles/Players.css"
import { Link } from 'react-router-dom'
import Axios from 'axios'
export default props => {
const brandId = props.match.params.brand
const [shoes, setShoes] = useState([])
useEffect(() =>{
Axios.get(`/shoes/brands/+${brandId}`).then(res=>
setShoes(res.data)
)
}, [brandId])
return (
<>
<div id="playercontainer">
{shoes.map((shoe, i) => (
<Link to={"/product/" + shoe.id} key={'shoe' + i}>
<div className="player">
<img className="shoeImg" src={`${shoe.pic}`} alt="" />
<div className="playerDesc">
<div className="teamName">{shoe.brand}</div>
<div className="playerName">{shoe.shoe}</div>
<div className="shoePrice">${shoe.price}</div>
</div>
</div>
</Link>
))}
</div>
</>
)
}
解决方案
推荐阅读
- c# - 代码:ErrorItemNotFound\r\n消息:在存储中找不到指定的对象。,进程未能获得正确的属性
- django - (Django) 不明白为什么我的 Python 类继承了错误的方法
- amazon-web-services - AWS 中的批量更新标签
- laravel - 创建标题 slug + 随机字符串 Laravel 7
- scala - 如何在scala的对象中调用私有函数
- python - 百分位数 pandas 与 scala 的错误在哪里?
- python - 无法使用 Anaconda 提示安装 pip PyMySQL
- polymer - WebComponent 和 lit-html 的区别
- sql - 我可以在 SQL 的另一个聚合器中使用聚合器吗?
- flutter - 颤振:未来
返回 null 但如果打印它有值