如何禁止ESLint将项目添加到useEffect的观察者数组中?

问题描述 投票:0回答:1

我正在使用React实时使用Firebase Firestore,并将侦听器放置在useEffect中。

这里是代码

useEffect(() => {
    const unsub = db.collection('messages')
    .onSnapshot((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            // Check if it's existing in messages
            const index = messages.findIndex(i => i.id === doc.id)

            if (index === -1) {
                const newMessage = {
                    id: doc.id,
                    ...doc.data()
                }
                setMessages([newMessage, ...messages])
            }
        });
    });

    return () => unsub()
}, [])

每次尝试保存文件时,它都会在useEffect数组内添加messages状态

useEffect(() => {
    // code
}, [messages])

变得很烦人,并且由于这种行为,它会继续重新启动侦听器并导致我获取重复的数据,等等。

我已经尝试搜索此的ESLint规则,并且似乎找不到它。

javascript reactjs react-hooks eslint tslint
1个回答
0
投票

[C0的问题。我认为这是useSate的变量。 Linter建议将消息​​添加到依赖项数组。下面的MB代码可以提供帮助。

messages
© www.soinside.com 2019 - 2024. All rights reserved.