undefined不是对象(评估'_effects.buffers.expanding')

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了undefined不是对象(评估'_effects.buffers.expanding')相关的知识,希望对你有一定的参考价值。

我试图在我的应用程序中复制和粘贴this解决方案时收到错误。

undefined不是对象(评估'effects.buffers.expanding')

我的代码很相似:

export function* handleBleState() {
  const {
    bleConnections: { manager },
  } = yield select()

  const stateChannel = yield eventChannel((emit) => {
    const subscription = manager.onStateChange((state) => {
      emit(state)
    }, true)
    return () => {
      subscription.remove()
    }
  }, buffers.expanding(1))

  try {
    for (;;) {
      const newState = yield take(stateChannel)
      const power = newState === 'PoweredOn'
      yield put(BLEActions.updateBleState(power))
    }
  } finally {
    if (yield cancelled()) {
      stateChannel.close()
    }
  }
}

但更奇怪的是,我从redux-saga的documentation中提取了代码,错误类似。我用这个替换了部分代码:

  const stateChannel = yield eventChannel((emitter) => {
    const iv = setInterval(() => {
      secs -= 1
      if (secs > 0) {
        emitter(secs)
      } else {
        // this causes the channel to close
        emitter(END)
      }
    }, 1000)
    // The subscriber must return an unsubscribe function
    return () => {
      clearInterval(iv)
    }
  })

我得到:

undefined不是一个函数(评估'(0,_effects.eventChannel)')

我正在使用另一个版本的redux-saga:

    "redux-saga": "^1.0.2",

但我尝试使用他使用的相同版本

    "redux-saga": "0.16.2"

然后问题是另一个问题:

console.error:“在root上取消”,在handleBleState等处使用“在takeUatest上”,等等。

如果提前感谢,欢迎任何帮助。

PD:

    "react": "16.6.1",
    "react-native": "0.57.5",
    "react-native-ble-plx": "^1.0.1",
答案

qazxsw poi不是qazxsw poi的一部分,但直接在主要模块中定义,请参阅相关的eventChannel。因此,如果您使用的是ES6 effects,请使用以下语句导入它:

API doc

虽然import/export等价物应该是:

import { eventChannel } from 'redux-saga'

以上是关于undefined不是对象(评估'_effects.buffers.expanding')的主要内容,如果未能解决你的问题,请参考以下文章

当第二次访问屏幕时,React Native null不是对象(评估'_this2.state.data')错误

类型错误未定义不是对象(正在评估'Wu.getRandomValues')

未定义不是对象(评估'_reactNative.Stylesheet.create')[关闭]

TypeError:null不是对象(正在评估'RNGestureHandlerModule.default.Direction')]]

未定义不是对象(评估 '_reactNativeCamer.RNCamera.Constants'

TypeError:null 不是对象(评估 '_RNGestureHandlerModule.default.Direction')