react-native - 使用 useContext 和 useEffect 在 React Native 中超出最大更新深度
问题描述
useContext
我对和有问题useEffect
。React 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
.
我在这里应用任何反模式吗?或者如何正确地做到这一点?
感谢您的时间!
解决方案
推荐阅读
- python - 获取要在 entry_field 小部件中填充的文件路径
- microcontroller - IR遥控接口PIC16f877a
- javascript - 如何以角度获取/显示数组对象的总长度
- c - 为什么 _SC_AIO_MAX 定义明确,而 sysconf(_SC_AIO_MAX) 返回 -1?
- android - 如果绑定适配器提供了设置器,请检查适配器是否正确注释以及参数类型是否匹配
- delphi - 如何在 Delphi 7 中使用 ComboBox 过滤 DBGrid 中的数据?
- azure - ARM模板 - 连接秘密名称时从密钥库中检索不起作用
- c# - 恢复密码在本地主机上有效,但在主机端无效
- java - javax.naming.NamingException:“com.stateful.ejb.ListItems”的查找失败
- c++ - 为什么在 x86 上的 solaris11.3 中构建静态库和动态库时会有区别?