0
私はこの関数を呼び出すonEnter
フック上に処理されていません。 replace
関数は明確に定義されています。ただし、ルートは置き換えられません。機能置き換える反応するルータ正しく
ソースの質問hereのコア動機がわずかに異なります。しかし、彼らは一種の関連性がありますが、私はタイトルが異なっていることを望んでいました。
私はこの関数を呼び出すonEnter
フック上に処理されていません。 replace
関数は明確に定義されています。ただし、ルートは置き換えられません。機能置き換える反応するルータ正しく
ソースの質問hereのコア動機がわずかに異なります。しかし、彼らは一種の関連性がありますが、私はタイトルが異なっていることを望んでいました。
firebase.auth()
は非同期であるので、あなたはonEnter
にコールバックを定義する必要があります。
function (nextState, replace , callback /*** <== add this ***/) {
var unsubscribe = firebase.auth().onAuthStateChanged(function (user) {
if (!user) {
console.log('attempting to access a secure route');
replace({
pathname: '/login',
state: { nextPathname: nextState.location.pathname }
})
console.log('should have called replace');
callback(); /*** <=== call this to change route ***/
}
unsubscribe();
});
};