私はフォームで完了した情報が失われる別のセクションに移動しようとしているときにユーザーに警告する確認モーダル(反応確認を使用)を表示しようとしています。React:shouldComponentUpdateが非同期操作を待つ
JSの確認は、コードをブロックしないので、私はこれを行うことができます:
shouldComponentUpdate(nextProps, nextState) {
if (confirm('Hay cambios sin guardar, si continua se perderán. ¿Desea continuar?')) {
return true;
} else {
return false;
}
}
をしかし、私は結果を待つことができないライブラリに反応-確認のいずれかで確認方法を交換するときこの非同期操作。
async shouldComponentUpdate(nextProps, nextState) {
const response = await confirm('Hay cambios sin guardar, si continua se perderán. ¿Desea continuar?', { title: "Cambios sin guardar", okLabbel: "Sí", cancelLabel: "No!" })
.then(
() => {
return true;
},
() => {
return false;
}
);
return (response);
}
私はこれを取得することができますどのように、誰もが知っていますか?
あなたが別のセクションへのリンク/ボタンをクリックしたときに確認をなぜ呼び出さないのですか?成功コールバックでは、ユーザーを新しいセクションにリダイレクトすることができます。 – Saleel
各セクションに異なるルートを使用していないため。コンポーネントが各セクションの情報のレンダリングを管理するので、shouldComponentUpdateを使用しようとしています。 – Marina
したがって、別のセクションへの移行に伴う状態の変更があります。 shouldComponentUpdateにnextProps、nextStateパラメータがあるので、状態をチェックしてそれに応じてyesまたはnoを返すことができます。 – Saleel