0
comment puis-je modifier ce code à une classe:Convertir const réagir classe
const PrivateRoute = ({ component, ...rest }) => (
<Route {...rest} render={props => (
fakeAuth.isAuthenticated ? (
React.createElement(component, props)
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
J'utilise ce composant réagir routeur 4:
<Switch>
<Route exact path="/" component={About} />
<Route exact path="/login" component={Login} />
<PrivateRoute path="/protected" component={Home}/>
<Route component={NotMatch} />
</Switch>
Mais je dois passer à un Classe parce que j'utilise MobX.
Quelque chose comme ceci:
@inject('store')
@observer
export default class PrivateRoute extends Component {
constructor (props) {
super(props)
this.store = this.props.store
}
render() {
return (
<div>
</div>
)
}
}
Merci!
Tout fonctionne bien, mais vous devez ajouter à const: {composant, ... rest} = this.props; – chemitaxis
Qu'est-ce que ... reste? :) Merci! – chemitaxis
Ouais oublié le const, merci! '... rest' met simplement le reste des propriétés de l'objet' this.props' dans un objet repos. jetez un oeil à [ce lien] (https://babeljs.io/docs/plugins/transform-object-rest-spread/) – HosseinAgha