类型错误:prevDeps.join 不是 next js 的函数

lik*_*who 2 firebase reactjs next.js

我想在下一个 js 和 firebase 中创建一个搜索栏,它的工作原理是从 url 获取 slug 并通过我的搜索算法解析它。问题是,如果用户使用搜索栏 2 次,它就会中断并显示以下错误:

在此输入图像描述

这就是我推送数据的方式

              <Link  href={`http://localhost:3000/search/${search}/`} >
                <Magnify fontSize='small' />
              </Link>
Run Code Online (Sandbox Code Playgroud)

这是我得到它的方法

   const serachId = router.query.id;
    useEffect(() => {
        onAuthStateChanged(auth, async (user) => {

            if (user) {
                // User is signed in, see docs for a list of available properties
                // https://firebase.google.com/docs/reference/js/firebase.User
                const places = query(collection(getFirestore(app), '/programs'))
                const querySnapshot = await getDocs(places)



                querySnapshot.docs.forEach(doc => {

                    if (JSON.stringify(doc.data()).includes(router.query.id)) {
                        let programObj = {
                            age: doc.data().price,
                            icon: doc.data().logo,
                            status: "software",
                            date: doc.data().start,
                            name: doc.data().name,
                            salary: '$$$',
                            email: doc.data().website,
                            designation: 'Human Resources Assistant',
                            id: doc.id
                        };
                        setPrograms(prev => [...prev, programObj]);
                    }
                })
            }
            else {
                console.log("no loggin")
            }
        });

    }, router.query.id)
Run Code Online (Sandbox Code Playgroud)

Kal*_*oo 11

您的依赖项数组应位于方括号 [ ] 中

像这样:[router.query.id]