大家好
我试图掌握一些钩子并使用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挂钩来实现此效果,但是,如果刷新页面,则useEffect不会读取道具,并且产品变得不确定。
对此有任何解决方案???
答案 0 :(得分:3)
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]);
}
答案 1 :(得分:0)
尝试一下:
useEffect(() => {
setProduct(queryString.parse(window.location.search).prod);
}, [window.location.search]); <-- changed