reactjs - React useEffect刷新没有获取值

标签 reactjs react-native react-hooks

大家好

我正在尝试掌握 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/

相关文章:

react-native - @react-native-community/datetimepicker 的 CustomStyle 和 textColor Prop 不起作用

javascript - 简单的reactjs组件出现意外的 token 错误

arrays - 使用 React 钩子(Hook),我如何更新通过 Prop 传递给 child 的对象?

reactjs - 为什么 useEffect 不会在每次渲染时触发?

javascript - react native /Redux : How to pass down updated state to child components every time state changes?

javascript - React 如何连接 JS 文件和 HTML 文件

javascript - 使用 createAsyncThunk 成功异步操作后重定向

android - 如何使用 Sublime 为 React Native 应用程序编写代码

javascript - 从 React 中的自定义元素修改属性

ios - 在react-native中下载ZIP文件