0
私は最初の実際の反応と還元アプリケーションで認証を取得しようとしていますが、ルートのアクセスと検証を管理していません。'オブジェクト'のプロパティはオブジェクトで定義されていません:React.PropTypes.object
class App extends Component {
render() {
return (
<Router history={history}>
<Layout>
<Route path='/' exact component={Home} />
<Route path='/signin' component={SignIn} />
<Route path='/signout' component={SignOut} />
<Route path='/brain' component={RequireAuth(Brain)} />
</Layout>
</Router>
);
}
}
export default App;
そして、これは私が取得していますエラーです:私はここに私のルートでそれをインポートして呼び出しています
export default function(ComposedComponent) {
class Authentication extends Component {
static contextTypes = {
router: React.PropTypes.object
}
componentWillMount() {
if (!this.props.authenticated) {
this.context.router.push('/');
}
}
componentWillUpdate(nextProps) {
if (!nextProps.authenticated) {
this.context.router.push('/');
}
}
render() {
return <ComposedComponent {...this.props} />
}
}
function mapStateToProps(state) {
return { authenticated: state.auth.authenticated };
}
return connect(mapStateToProps)(Authentication);
}
:ここ
は、認可を検証するために私のコードです
TypeError: Cannot read property 'object' of undefined
./src/components/auth/RequireAuth.js.__webpack_exports__.a
src/components/auth/RequireAuth.js:7
4 | export default function(ComposedComponent) {
5 | class Authentication extends Component {
6 | static contextTypes = {
> 7 | router: React.PropTypes.object
8 | }
9 |
10 | componentWillMount() {
View compiled
お手数おかけいただきありがとうございます。
実行中のReactのバージョンは何ですか? 'React.PropTypes'はv15.5から廃止されました。これは現在、独自の 'PropTypes'モジュール(https://www.npmjs.com/package/prop-types)です。おそらく、それをインポートして、単に 'PropTypes.object'を使うべきです。 – SamVK
これは修正しました。ありがとうございます。はい、私はReactの最新バージョンを使用していて、ちょっと日付のついたチュートリアルを使用していますので、それは問題だと思っていましたが、検索するとき何も見つかりませんでした。再度、感謝します! –