1
다음과 같이 redux saga에 대한 테스트를 구현하려고하는데 문제가 발생했습니다. 내가 얻은 오류는 정의되지 않은 속성 페이로드를 읽을 수 없습니다. 사가 함수에 전달 된 'message'var은 어떤 이유에서든 정의되지 않습니다. 아무도 그 이유를 말할 수 있습니까? 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),
......
]
내가 REDUX-행동에서 actionCreator 사용하고
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
}
}
'정의되지 않은'얻을 아래에 내가 로그인 메시지를 콘솔 감사
:export const addMessage = createAction(ADD_MESSAGE);
당신이하지 않은 경우 onCreateMessage에 첫 번째 조치를 yeild하는 테이크 효과를 사용, ... takeEvery에 인수를 전달해야하고,이 작업을 통해 메시지의 값을 얻을 수 있습니다. – andresmijares25