React useEffect刷新无法获得价值

时间:2020-06-07 13:04:34

标签: reactjs react-native react-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挂钩来实现此效果,但是,如果刷新页面,则useEffect不会读取道具,并且产品变得不确定。

对此有任何解决方案???

2 个答案:

答案 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