私は複数のステップウィザードフォームを持っています。ここでは、検証エラーが発生した場合、次のステップに進むことはできません。コンポーネントのアンマウントを中止しますか?
問題は、私はいつもブラウザ "戻る"ボタンを使用して前のステップ(既に検証に合格したステップ)に行き、いくつかの無効なデータに入力を変更し、ブラウザの進むボタンを現在のステップに戻すことができるそれは、私がバリデーションをバイパスしたことを意味します。私は現在のステップを離れる前にチェックを行うと、何かがうまくいかない場合は残して防ぐことができるかどう
が、私はわからないんだけど、私は
class Step2 extends Reac.Component {
// ...
compomentWillUnmount(){
if(!form.isAllFieldsValid()){
// display error and abort forward action
}
}
// ...
}
図のサンプルのようなものを実現したいと思います:
通常のフローは1、2、3、4などとなります。
私が対処しようとしている流れがあり、1、2、3、その後、STEP2の画面で、ユーザーを押しブラウザ戻るボタンは、STEP1にいくつかの不正な変更は、その後ブラウザ前進ボタンを押してください。私はそれが "前方"イベントをフックすることが可能かどうかを確認しようとしている、検証を行い、私はエラーメッセージでステップ1のままにするかどうかを決定するか、step2に進む。
トリッキーな部分が要件である、フォームデータは常に(ブラウザのメモリに)保存することが必要であるあなたが戻って
基本的に、ルート変更が通過するかどうかを判断する条件が必要ですか?もしそうなら、私の前の答え[ここ](http://stackoverflow.com/a/37192984/2030321)を見てください。その質問のOPは確認ダイアログを必要としましたが、Yes/No確認をエラーメッセージに置き換えることができます。 – Chris
申し訳ありませんが、私はそれを明確にすることができるように図を追加しました – Kossel