React/Redux useEffect 多次触发调度

Luc*_*caT 1 reactjs react-redux react-hooks

我在使用 useEffect() 和dispatch() 操作时遇到问题。我正在使用最新版本的react“^18.1.0”。基本上,我有以下在简单的代码中定义的代码。

const Item = () => {

    const dispatch = useDispatch()
    const user = useSelector(state => state.authReducer.user)

    useEffect(() => {
        dispatch(fetchItems()).then(res => console.log(res)).catch(err => console.log(err))
    }, [dispatch])

    return (
        <div id='data-container'>
            <Navbar />
            <div id='data-wrap'>
                Data
            </div>
        </div>
    );
}

export default Item 
Run Code Online (Sandbox Code Playgroud)

fetchItems() 是一个简单的函数,它从 API 获取一些数据。

问题是该操作被调度两次,但我希望该操作仅被调度一次。

任何帮助的人将不胜感激。

谢谢。

bre*_*ein 6

当你在开发模式下运行 React 时这是正常的。(React 检查一切是否正常)。

尝试构建一个生产版本,它应该表现正常。

此外,在依赖项数组中进行调度是正确的,因为它永远不会更改其引用。