0
첫 번째 실제 반응 및 감면 앱에서 인증을 실행하려고하지만 경로 액세스 및 확인을 관리하는 데 어려움이 있습니다.'object'속성이 object로 정의되지 않았습니다. React.PropTypes.object
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);
}
내가 가져오고 여기 내 노선에 그것을 호출 오전 : 여기
권한 부여 확인하려면 코드입니다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;
을 그리고 이것은 내가 점점 오전 오류입니다 :
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를 사용하고 다소 날짜가있는 자습서를 사용하고 있기 때문에 문제는 아니라고 생각했지만 검색 할 때 아무 것도 찾을 수 없었습니다. 다시 한 번 감사드립니다! –