Reactjs DeviceEventEmitter上的设置状态不变(datawedge\u broadcast\u意图)。在React Native中设置状态的最佳方法是什么?

Reactjs DeviceEventEmitter上的设置状态不变(datawedge\u broadcast\u意图)。在React Native中设置状态的最佳方法是什么?,reactjs,react-native,datawedge,deviceeventemitter,Reactjs,React Native,Datawedge,Deviceeventemitter,我使用Android Zebra扫描仪执行扫描,我使用DeviceEventEmitter(“datawedge\u broadcast\u intent”) 在第一个屏幕上,我使用DeviceEventEmitter,一切正常,当我更改屏幕时,DeviceEventEmitter无法捕获最新状态 如果触发DeviceEventEmitter或onPress,则dataReceived()函数将运行, 但是在DeviceEventEmitter中,dataReceived()函数不会从count

我使用Android Zebra扫描仪执行扫描,我使用DeviceEventEmitter(“datawedge\u broadcast\u intent”) 在第一个屏幕上,我使用DeviceEventEmitter,一切正常,当我更改屏幕时,DeviceEventEmitter无法捕获最新状态

如果触发DeviceEventEmitter或onPress,则dataReceived()函数将运行, 但是在DeviceEventEmitter中,dataReceived()函数不会从count中捕获最新的数据。 下面是我的代码:

import React, { useEffect, useState } from 'react';
import {
  Button, DeviceEventEmitter,
  StyleSheet,
  Text, View
} from 'react-native';
// import DataWedgeIntents from 'react-native-datawedge-intents';

const Unkitting = () => {
  const [count, setCount] = useState(0);

  const dataReceived = intent => {
    console.log(intent)
    setCount(count + 1)
  };

  useEffect(() => {
    const scan = DeviceEventEmitter.addListener(
      'datawedge_broadcast_intent', intent => { dataReceived(intent); },
    );
    return () => scan.remove();
  }, []);

  return (
    <View >
      <Text>{count}</Text>
      <Button
        title="add count"
        onPress={() => dataReceived("Button Press")}>
      </Button>
    </View>
  );
};

export default Unkitting;
import React,{useffect,useState}来自“React”;
进口{
按钮,设备事件发射器,
样式表,
文本、视图
}从“反应本机”;
//从“react native datawedge intents”导入datawedge内容;
常数不匹配=()=>{
const[count,setCount]=useState(0);
const dataReceived=intent=>{
console.log(意图)
设置计数(计数+1)
};
useffect(()=>{
const scan=DeviceEventEmitter.addListener(
'datawedge_broadcast_intent',intent=>{dataReceived(intent);},
);
return()=>scan.remove();
}, []);
返回(
{count}
收到数据(“按下按钮”)}>
);
};
导出默认不匹配;