Ich versuche, einen Test für redux saga wie folgt zu implementieren, aber ich lief auf ein Problem. Der Fehler, den ich erhalte, ist, kann nicht lesen Eigenschaft Nutzlast von undefined. Die 'Nachricht' var, die ich an die Saga-Funktion übergeben habe, ist aus irgendeinem Grund undefiniert, kann mir jemand sagen warum? DankTesten redux-saga
saga.spec.js
import test from 'tape'
import { put,take,call } from 'redux-saga/effects'
import { onCreateMessage } from '../src/common/sagas/messages'
import { addMessage,createMessage } from '../src/common/reducers/messages'
test('createMessage', assert => {
const gen = onCreateMessage()
var message = {
id: 1234,
channelID: "AA",
text: "text",
user: "user"
}
assert.deepEqual(
gen.next(message).value,
put(addMessage(message)),
'createMessage should dispatch addMessage action'
)
})
saga/index.js
export default function* rootSaga(){
yield [
takeEvery('CREATE_MESSAGE', onCreateMessage),
......
]
Wenn ich angemeldet Nachricht trösten unten I 'undefined' get
export function* onCreateMessage(message) {
console.log(message)
yield put(addMessage(message.payload))
try {
yield call(fetch,'/api/newmessage',
{
method: 'post',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(message.payload)}
)
} catch (error){
throw error
}
}
Ich verwende actionCreator von redux-Aktionen:
export const addMessage = createAction(ADD_MESSAGE);
Sie haben die Argumente auf der takeEvery passieren ... wenn nicht, die wirksam verwenden, um die erste Aktion in onCreateMessage yeild, und Sie können den Wert auf Nachricht über eine Aktion zu bekommen. – andresmijares25