Javascript React本机Android操作错误:';undefined不是对象(计算';action.type';)';

Javascript React本机Android操作错误:';undefined不是对象(计算';action.type';)';,javascript,android,reactjs,react-native,Javascript,Android,Reactjs,React Native,我使用的是React Native v.43.0-rc.3,当我点击切换按钮时,我的Android仿真器中出现以下错误: undefined is not an object (evaluating 'action.type') 我的切换按钮连接到/action/index.js中的函数: export const toggleUpdateSwitch = (showUpdates) => { // error goes away when i remove this line be

我使用的是React Native v.43.0-rc.3,当我点击切换按钮时,我的Android仿真器中出现以下错误:

undefined is not an object (evaluating 'action.type')
我的切换按钮连接到
/action/index.js
中的函数:

export const toggleUpdateSwitch = (showUpdates) => {
  // error goes away when i remove this line below ----+v
  AnalyticsTracker.trackEvent({"category": "profile", "action" : "toggle", "label": "section/updates"})

  async dispatch => {
    ToastAndroid.show(TOGGLE_UPDATES_NO_DATA_MESSAGE, ToastAndroid.LONG, ToastAndroid.CENTER);
    const response = await fetch('http://my.url.com/doSomething', { headers, method: 'GET' });
  }
}
所以我在上面添加了一行(AnalyticsTracker),这就是我切换时产生错误的原因。有什么想法吗

模拟器错误屏幕截图:


我以前遇到过这样的问题。您必须将跟踪器代码放入异步调度中。根据我的经验,每当我的函数中有异步调度时,如果在它之外有同步代码,我总是会遇到这个错误。我不清楚为什么会发生这种情况,但我知道这已经为我解决了


我的理论是,当您执行异步时,您正在启动一个不同的线程。通过在其外部使用同步代码,主线程上会发生一些事情,但不会返回任何东西。因此,在执行action.type时,未定义的对象不是对象,因为默认情况下,我认为RN希望返回具有type属性的对象,但您不会返回任何内容。

谢谢!成功了!在
异步调度中移动它成功了!