내 반응 양식 구성 요소의 formSubmit
부분을 리디렉션`_id`을 반환받을하기 위해 다음과 같습니다 :POST 요청 - 방법이
handleFormSubmission = (e) => {
if (e) e.preventDefault()
const { showErrors, validationErrors, ...formData } = this.state
const { submitForm, router } = this.props
const errors = run(formData, fieldValidations)
let newState = update(this.state, {
validationErrors: { $set: errors }
})
this.setState(newState,() => {
if (isEmpty(this.state.validationErrors)) {
// submitForm is an dispatches a redux action
submitForm(formData)
if (formData._id) {
// the below is good on a PUT request
router.push(`/accounts/lodgedocket/${formData._id}`)
} else router.push(`/accounts/lodge`)
// with the else above I have no _id to redirect to
} else this.matterno.focus()
})
submitForm
는이 다음 REDUX 액션을 전달하다 REDUX-사가
const { payload } = yield take(constants.SUBMIT_LODGE_FORM)
에 의해 take
, n은 문제는 내가 POST 요청이 성공적으로 완료 한 후 새로운 _id
에 픽업하는 방법을 알고하지 않는 것이 다음이다. url 리디렉션이 작업 파일이나 구성 요소에서 수행되어야합니까?
어쩌면 나는 행동에서 URL을 push
해야 할 수도 있습니다. 그러나 나는 이것도 이해할 수 없습니다.
나는 reactjs, redux, react-redux 및 react-redux-router를 사용하고 있습니다.
감사합니다.
덕분에 여러분의 의견을. xhr 요청은 redux-saga를 통해 전송됩니다. 내가 알 수없는 반환 된 새 _id와 함께 리디렉션 할 위치입니다. – Joe
redux 라우터 조치를 SUBMIT_LODGE_FORM 페이로드에 전달하고 Ajax 호출 응답 후 saga에서 디스패치 할 수 있습니다. –
또는 무용담에서 직접 푸시 (가있는 경로)를 발송하십시오. –