그래서 나는 근본적으로 잘못된 것을하고 있다고 생각합니다. 처음 브라우저에서 이미지를 업로드하면 아래의 기능이 실행되지만 한 번만 발생합니다. 그래서 다음에 이미지를 업로드 할 때 watchFileReader 함수가 다시 실행되는 것을 볼 수 없습니다 .. 예상치 못한 행동을하기 위해 다른 사가 함수를 얻고 있기 때문에 이상하게 보입니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?사가 기능이 두 번째 요청을 수락하지 않는 이유는 무엇입니까?
export function* watchFileReader() {
const action = yield take("DROP_FILE")
console.log('action', action)
let file = action.file[0];
readFile(file, function(e) {
sessionStorage.removeItem('img')
console.log('alskdjfalsdjkf', e.target.result)
sessionStorage.setItem('img', e.target.result)
})
}
export const readFile = (file, callback) => {
let reader = new FileReader()
reader.onloadend = callback;
reader.readAsDataURL(file)
}
export function* rootSaga() {
yield [
watchFileReader()
]
}
이것에 대한 귀하의 빠른 도움을 주셔서 감사합니다 .. 또한 어떻게 당신이 상태 감속기에 e.target.result를 전달할 줄 알아. sessionStorage.setItem ('img', e.target.result)을 대체 할 때 yield ({type : "ENCODE", {img : e.target.result}})와 같은 것처럼 보입니다. – slopeofhope
예외는 무엇입니까? –
예기치 않은 토큰이 있습니다. 모듈 빌드 실패 : SyntaxError : /home/console_2/static/app/sagas.js : 예기치 않은 토큰 (153 : 6) 151 | sessionStorage.removeItem ('img') 152 | sessionStorage.setItem ('img', e.target.result) > 153 | yield put ({type : "ENCODE"}) |^ 154 | }) 155 | } – slopeofhope