У меня есть этот redux-observable эпик, который POST
является телом json для моего бэкэнда, но на самом деле он никогда не получает чтобы отправить фактический сетевой запрос. Он использует Rx.DOM.Request.post (url, [body]) (я думаю? пожалуйста, просмотрите мой импорт, чтобы подтвердить). Я могу убедиться, что сетевой запрос никогда не выходит из моего приложения, не говоря уже о моем бэкэнде:
import { Observable } from 'rxjs'
import 'redux-observable'
import {
UPLOAD_IMAGE,
UPLOAD_IMAGE_FULFILLED,
UPLOAD_IMAGE_REJECTED,
UPLOAD_PRODUCT,
uploadImageFulfilled,
uploadImageRejected,
uploadProductFulfilled,
uploadProductRejected
} from './addForm.action'
import {
updateAlertModalIsOpen,
updateAlertModalMessage,
updateAlertModalTitle
} from '../alert-modal/alertModal.action'
import 'rxjs/add/operator/catch'
import { RNS3 } from 'react-native-aws3'
import { ajax } from 'rxjs/observable/dom/ajax'
export const uploadProductEpic = action$ =>
action$.ofType(UPLOAD_PRODUCT)
.mergeMap(action => {
ajax.post(
'http://192.168.20.3:4000/products',
action.payload,
{ 'Content-Type': 'application/json' })
})
.map(response => uploadProductFulfilled(response))
.catch(error => Observable.of(uploadProductRejected(error)))
Он вызывается нажатием кнопки:
onPress={() => {
let product = {
"name": props.name,
"brand": props.brand,
"description": props.description,
"image": "fakeUrl"
}
props.uploadProduct(JSON.stringify(product))
это содержимое объекта action
в приведенной выше эпопее:
payload: "{"name":"v","brand":"v","description":"v","image":"fakeUrl"}"
type: "UPLOAD_PRODUCT"
Это потому, что мой json использует все двойные кавычки без выходов?
Я могу проверить строку кода в эпике, который выполняет сообщение ajax, запускается при нажатии кнопки, и при первом нажатии кнопки он завершает отправку uploadProductRejected(error)
, даже не выполняя сетевой запрос, и где ошибка, которая отправляется в действие uploadProductRejected
- это просто { }
, и при последующих нажатиях кнопки оно даже не отправляет отклоненное или выполненное действие.
Есть идеи, почему он отклоняется и почему он даже не пытается выполнить сетевой запрос?