reactjs - React 中的依赖周期问题
问题描述
ErrorMessage
我在我的应用程序中创建了一个全局上下文,我想展示Login
它们是否被触发打开。所以我把它们放在一个上下文中。问题是Login
输出依赖周期问题。我认为这是因为如果他们输入了错误的电子邮件或密码ErrorMessage
也会被发现。Login
我将如何解决这个问题?我认为这是因为导入useGlobalContext
. Login
我正在考虑为auth
?
import dynamic from 'next/dynamic'
import React, { createContext, useState, useContext } from 'react'
export const GlobalContext = createContext()
export const useGlobalContext = () => {
return useContext(GlobalContext)
}
const ErrorMessage = dynamic(
() => import('../../../components/Modal/ErrorMessage'),
{
ssr: false,
}
)
const Login = dynamic(() => import('../../../components/Login'), {
ssr: false,
}) --------> Dependency cycle via....
export const GlobalProvider = ({ children }) => {
const [showLogin, setShowLogin] = useState(false)
const [showError, setShowError] = useState(false)
const [errorMessage, setErrorMessage] = useState('')
const toggleLogin = () => setShowLogin((prevState) => !prevState)
return (
<GlobalContext.Provider
value={{
showLogin,
setShowLogin,
toggleLogin,
showError,
setShowError,
setErrorMessage,
errorMessage,
}}
>
{children}
<Login toggleLogin={toggleLogin} />
<ErrorMessage
message={errorMessage}
setShowModal={setShowError}
showModal={showError}
/>
</GlobalContext.Provider>
)
}
登录.js
import { useGlobalContext } from '../../libs/context/globalContext'
const LoginForm = ({ toggleLogin = () => {} }) => {
const { setShowError, setErrorMessage } = useGlobalContext()
}
export default LoginForm
解决方案
推荐阅读
- python - 我们可以在turtle.shape() 中添加形状吗?
- swift - Swift View Controller 滑动两次问题
- python - numpy.arange() 仅在 start=0 时才导致数据类型没有填充功能
- javascript - Google Apps Script 类方法中的“this”返回 null?
- node.js - 自动反应消息 discord.js
- python - 如何在 Pillow 中叠加两个不透明的图像
- python - 在 Heroku 中部署时 Selenium 找不到 div
- solr - 将 Solr 从 6.0.0 升级到 8.7.0
- javascript - Javascript Pacman 风格游戏随机地图生成器显示未定义的属性
- c++ - 为什么隐式转换不适用于模板化函数参数?