首页 > 解决方案 > 使用 useContext 和 useEffect 在 React Native 中超出最大更新深度

问题描述

useContext我对和有问题useEffectReact Native

这是我的代码:

const FormScreen = () => {
    const { setAlertProps } = useContext(AppContext)

    /**
     * Listeners
     */

    useEffect(() => {
        makeGetDataSourceAPI()

        console.log('im in')
    }, [])

    /**
     * Functionalities
     */

    const makeGetDataSourceAPI = () => {
        setAlertProps({
            type: HLAlertType.Success,
            description: 'Alert! Alert!'
        })
    }


    return (
        <View style={styles.contentView}>

        </View>
    )
}

所以基本上,在第一次渲染时,我调用了一个设置状态的函数AppContext

来自的道具AppContext是这样使用的App.js

{alertProps && <AlertView alertProps={alertProps} />}

我的问题是,在第一次渲染时它会抛出超过最大更新深度,并且在我关闭警报后它再次进入此循环。

我不知道它是否会影响它,但我的 AlertView 是modal.

我在这里应用任何反模式吗?或者如何正确地做到这一点?

感谢您的时间!

标签: react-nativehookuse-effectuse-context

解决方案


推荐阅读