私はいつも違った読みやすさの方法でコードを書いていますが、最近私のReact-Reduxアプリケーションにif文を書いています。このように私の関数を書く上で機能上の違いはありますか?このサンプルでは、Login
コンテナのcomponentWillReceiveProps
は、ユーザーのIDがRedStoreストア(mapStateToProps経由でアクセスされる)に定義されているかどうかを確認します。nextProps.isLoggedIn
がtrue
の場合、ユーザーはアプリケーションのルートルートにプッシュされます。小道具をチェックする方法に違いはありますか?
以下に書かれた2つのコードスニペットは同じように動作しますが、それらが同義の方法で機能しないエッジケースがあるかどうか不思議です。私のコンテナの
componentWillReceiveProps(nextProps) {
if (nextProps.isLoggedIn) {
browserHistory.push('/');
}
}
componentWillReceiveProps(nextProps) {
!!(nextProps.isLoggedIn) && browserHistory.push('/');
}
connect
export default connect(
state => ({
isLoggedIn: state.auth.identity,
}),
{ login },
)(Login);
そして、私の減速で、identity
のデフォルトparamがnull
です。ユーザーが正常にログインすると、identity
の値は、認証バックエンドからの応答として返されるオブジェクトに更新されます。
あなたの使用には '!!'は必要ありません。 – 4castle
ダーン、そうです。私はあなたの質問を修正して、減速機のデフォルトのパラメータとしてブール値を使用しないようにします。 –