首页 > 解决方案 > 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 并加载正常。

标签: react-native

解决方案


这解决了它,如果其他人遇到这个问题:

this.listner = DeviceEventEmitter.addListener('showFloater', (e) => {
        this.setState({showFloater:e.val})
    });

推荐阅读