react-native - DeviceEventEmitter.addListener 警告在现有状态转换期间无法更新
问题描述
当我在下面添加设备发射器时,它会引发警告:
警告:在现有状态转换期间无法更新(例如在 内
render
)。渲染方法应该是 props 和 state 的纯函数。
componentDidMount() {
DeviceEventEmitter.addListener('showFloater', (e) => {
this.setState({showFloater:true})
});
DeviceEventEmitter.addListener('hideFloater', (e) => {
this.setState({showFloater:false})
});
}
这是构造函数片段:
this.state = {
pan:new Animated.ValueXY(),
_value:{
x: 0,
y: 0
},
showFloater: false
};
任何想法为什么我会收到警告?删除 setState 并加载正常。
解决方案
这解决了它,如果其他人遇到这个问题:
this.listner = DeviceEventEmitter.addListener('showFloater', (e) => {
this.setState({showFloater:e.val})
});
推荐阅读
- javascript - How to assign class to template ref? -- VueJS 3 Typescript Component API
- neural-network - 为 PyTorch 数据集创建自定义图像
- c# - 替代(字典
typeParameterValues) 在所有情况下都转换为 ITypeSymbol - google-apps-script - 从 GoogleDrive 导入CSV
- xamarin.essentials - 如何清除 Xamarin Essentials 中缓存的 WebAuthenticationResult?
- c - 计算一个节点是否在 BST 中有任何子节点
- spring-boot - 我们可以在 Spring Boot 中从服务层调用 Datafetcher 组件类吗?
- reactjs - 使用 React Hooks 过滤同一组件上的两组输入数据
- r - R:做 Bonett 测试 Shapiro 测试做了什么
- algorithm - SSSP问题定义中的距离感是什么?