2017-07-04 1 views
0

In meinem Router, muss ich folgendes tun:Reactjs, Wie prop.location.Patchname zu einem String zu vergleichen?

if (props.location.pathname !== '/confirm') { 
    // redirect to /confirm to force the user to confirm their email 
} 

Die if-Anweisung nicht wie erwartet wirkt.

Wenn ich Ausgang:

console.log(props.location.pathname) 

ich in der Konsole.

/confirm 

jedoch props.location.pathname mit dem Wert von ‚/ Bestätigen‘ wird nicht als das gleiche gesehen wie /confirm

Was mache ich falsch?

+2

Was ist 'typeof props.location.pathname '? Strenger Vergleich 'a! == b 'ist wahr, wenn Typen unterschiedlich sind. –

+0

'typeof props.location.pathname' gibt den String zurück – AnnaSm

+1

Dann sollte es in Ordnung sein,' props.location.pathname! == '/ confirm'' zu verwenden. Stellen Sie sicher, dass Sie kein Leerzeichen oder Sonderzeichen in "/ confirm" haben. –

Antwort

2

Typ beider Operanden sollten gleich sein, während == für comparision.Make sicher verwenden beide sind von String-Typ oder ändern, wenn zu

if (props.location.pathname != '/confirm') { 
// redirect to /confirm to force the user to confirm their email 

}