大家好
我正在尝试掌握 hooks 和 useEffect,但我无法理解一些东西。我的代码是这样的:
function RedigeraProdukter() {
//fetches redux
const products = useSelector(state => state.products)
//set local states
const [product, setProduct] = useState(
queryString.parse(window.location.search).prod
);
useEffect(() => {
setProduct(queryString.parse(window.location.search).prod);
}, [queryString.parse(window.location.search).prod]);
据说当用户获得此页面的链接时,一个 Prop 将作为查询字符串传递,并分配给产品。我使用 useEffect 钩子(Hook)来实现此效果,但是,如果刷新页面,useEffect 不会读取 prop,并且 Product 会变为未定义。
有什么解决办法吗???
最佳答案
useEffect
中的依赖项应该是 product
而不是 queryString.parse(window.location.search).prod
。
function RedigeraProdukter() {
//fetches redux
const products = useSelector(state => state.products)
//set local states
const [product, setProduct] = useState("");
useEffect(() => {
setProduct(queryString.parse(window.location.search).prod);
}, [product]);
}
关于reactjs - React useEffect刷新没有获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245735/