Я получаю сообщение об ошибке при попытке скопировать и вставить это решение в моем приложении.
undefined не является объектом (оценка'effect.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()
}
}
}
Но что более странно, я извлек код из документации of redux-saga и ошибка похожа.Я заменил часть кода на это:
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: "unchaught at root", "root in takeLatest" в handleBleState и т. д. и т. д.
Любая помощь будетдобро пожаловать, спасибо заранее.
PD:
"react": "16.6.1",
"react-native": "0.57.5",
"react-native-ble-plx": "^1.0.1",