まず、いくつかのコンテキスト。Reduxコンテナで上位コンポーネントを使用する
私はReduxを使ってアプリケーションの認証状態を管理しており、をReduxコンテナ(またはスマートコンポーネント)として持っています。
私はAuth
を取り、それを返すラッパー(高次成分)作成しました:
export default function AuthWrapper(WrappedComponent) {
class Auth extends Component {
... <Auth stuff here> ...
}
return connect(mapStateToProps, mapDispatchToProps)(Auth);
}
ラッパーを使用するためには、私はちょうどでそれを呼び出すために必要があると私には思えます私は私の認証の背後に持っているコンポーネントです。例えば、アラカルト、のは、私がラッパーでUserPage
と呼ばれるコンポーネントを認証していましょう:私はこのようなラッパーを使用する場合
const AuthenticatedUserPage = AuthWappper(UserPage)
しかし、私と一緒に幸せではない反応します。私は次のエラーを取得する:
Warning: AuthenticatedApp(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.
は私の最高の推測では、私の質問に私をリードしている...それは私がAuthWrapper
からそれを返すとき再来が作成されますconnect
-ifiedコンポーネントを好きではないということです。
Reactは、これらのコンポーネントがReduxコンテナを作成するときに高次コンポーネントをサポートしますか?もしそうなら、Reactがなぜこのエラーを投げているのだろう?
重要:http://stackoverflow.com/questions/42307736/redux-higher-order-components-same-as-container-components?rq=1 –