React + ReduxForm에서 dispatch에서 redux-form에 대한 오류를 등록하고 싶습니다.
8219 단어 redux-form자바스크립트Reactredux
react이거나, vu이거나, 혹은 Elm이거나, 거기까지 사용하는 규모가 아니기 때문에 jQuery라고 하는 패턴도. 모두 다 다들 좋다고 생각합니다.
하지만 이번에는 react + redux-form을 사용하고 있습니다.
서버로부터의 에러 표시로 곤란했다고 하는 일이 있거나 하기 때문에, 비망록도 겸해 에러 표시의 방법에서도.
이전에 쓴 이 기사의 파생
tutorial 거리에 오류를 표시!
네, 제목대로입니다.
tutorial.jsx<form onSubmit={handleSubmit(submit)}>
// 略
function submit(values) {
return sleep(1000) // simulate server latency
.then(() => {
if (![ 'john', 'paul', 'george', 'ringo' ].includes(values.username)) {
throw new SubmissionError({ username: 'User does not exist', _error: 'Login failed!' })
} else if (values.password !== 'redux-form') {
throw new SubmissionError({ password: 'Wrong password', _error: 'Login failed!' })
} else {
window.alert(`You submitted:\n\n${JSON.stringify(values, null, 2)}`)
}
})
}
tutorial 적으로는 이런 느낌으로 써 주면 좋을 것 같습니다.
dispatch에서 redux-form에 오류를 전달하고 싶습니다!
입니다만, 이번은 이 타이틀의 패턴이군요.
dame.jsximport { SubmissionError } from 'redux-form';
export const hogeAction = (value) = dispatch => {
console.log(value);
const error = nanikaSugoiShori();
// エラーが帰ってきたとして……
throw new SubmissionError(error);
};
이것이라고 OK입니다.
올바르게 redux-form에 error를 전달할 수 있습니다!
단지, 서버측의 처리한다……라고 하게 되면, 아무래도 비동기 처리가 되어 버려.
특히 아무것도 생각하지 않고 구현하면 ...
dame.jsxexport const hogeAction = (value) = dispatch => {
console.log(value);
nanikaSugoiHidoukiShori().catch(error => {
throw new SubmissionError(error);
});
};
// Uncaught (in promise)
그렇다면 오류가 발생합니다.
ok.jsximport { stopSubmit } from 'redux-form';
export const hogeAction = (value) = dispatch => {
console.log(value);
// 何かAPIを実行してエラーが帰ってきた!
nanikaSugoiHidoukiShori().catch(error => {
// エラーが帰ってきた時の処理
dispatch(stopSubmit('対象のformの名前', error));
});
};
이제 올바르게 오류가 발생합니다!
입니다만, stopSubmit를 실행하는 것이 기분 나쁜 느낌이므로, 좀 더 다른 방법이 없는지 조사해 보는 느낌…
Reference
이 문제에 관하여(React + ReduxForm에서 dispatch에서 redux-form에 대한 오류를 등록하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fumihiko-hidaka/items/9cd2e600ebd50ecdd126
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<form onSubmit={handleSubmit(submit)}>
// 略
function submit(values) {
return sleep(1000) // simulate server latency
.then(() => {
if (![ 'john', 'paul', 'george', 'ringo' ].includes(values.username)) {
throw new SubmissionError({ username: 'User does not exist', _error: 'Login failed!' })
} else if (values.password !== 'redux-form') {
throw new SubmissionError({ password: 'Wrong password', _error: 'Login failed!' })
} else {
window.alert(`You submitted:\n\n${JSON.stringify(values, null, 2)}`)
}
})
}
입니다만, 이번은 이 타이틀의 패턴이군요.
dame.jsx
import { SubmissionError } from 'redux-form';
export const hogeAction = (value) = dispatch => {
console.log(value);
const error = nanikaSugoiShori();
// エラーが帰ってきたとして……
throw new SubmissionError(error);
};
이것이라고 OK입니다.
올바르게 redux-form에 error를 전달할 수 있습니다!
단지, 서버측의 처리한다……라고 하게 되면, 아무래도 비동기 처리가 되어 버려.
특히 아무것도 생각하지 않고 구현하면 ...
dame.jsx
export const hogeAction = (value) = dispatch => {
console.log(value);
nanikaSugoiHidoukiShori().catch(error => {
throw new SubmissionError(error);
});
};
// Uncaught (in promise)
그렇다면 오류가 발생합니다.
ok.jsx
import { stopSubmit } from 'redux-form';
export const hogeAction = (value) = dispatch => {
console.log(value);
// 何かAPIを実行してエラーが帰ってきた!
nanikaSugoiHidoukiShori().catch(error => {
// エラーが帰ってきた時の処理
dispatch(stopSubmit('対象のformの名前', error));
});
};
이제 올바르게 오류가 발생합니다!
입니다만, stopSubmit를 실행하는 것이 기분 나쁜 느낌이므로, 좀 더 다른 방법이 없는지 조사해 보는 느낌…
Reference
이 문제에 관하여(React + ReduxForm에서 dispatch에서 redux-form에 대한 오류를 등록하고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fumihiko-hidaka/items/9cd2e600ebd50ecdd126텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)