将 const 转换为反应 class
Convert const to react class
如何将此代码更改为 class:
const PrivateRoute = ({ component, ...rest }) => (
<Route {...rest} render={props => (
fakeAuth.isAuthenticated ? (
React.createElement(component, props)
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
我在 React 路由器 4 中使用这个组件:
<Switch>
<Route exact path="/" component={About} />
<Route exact path="/login" component={Login} />
<PrivateRoute path="/protected" component={Home}/>
<Route component={NotMatch} />
</Switch>
但我需要更改为 Class 因为我正在使用 MobX。
像这样:
@inject('store')
@observer
export default class PrivateRoute extends Component {
constructor (props) {
super(props)
this.store = this.props.store
}
render () {
return (
<div>
</div>
)
}
}
谢谢!
您的 class 代码可以处理像您的功能组件这样的道具:
@inject('store')
@observer
export default class PrivateRoute extends Component {
constructor (props) {
super(props);
this.store = this.props.store;
}
render () {
const { component, ...rest } = this.props;
return (
<Route {...rest} render={ props => (
fakeAuth.isAuthenticated ? (
React.createElement(component, props)
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
}
}
如何将此代码更改为 class:
const PrivateRoute = ({ component, ...rest }) => (
<Route {...rest} render={props => (
fakeAuth.isAuthenticated ? (
React.createElement(component, props)
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
我在 React 路由器 4 中使用这个组件:
<Switch>
<Route exact path="/" component={About} />
<Route exact path="/login" component={Login} />
<PrivateRoute path="/protected" component={Home}/>
<Route component={NotMatch} />
</Switch>
但我需要更改为 Class 因为我正在使用 MobX。
像这样:
@inject('store')
@observer
export default class PrivateRoute extends Component {
constructor (props) {
super(props)
this.store = this.props.store
}
render () {
return (
<div>
</div>
)
}
}
谢谢!
您的 class 代码可以处理像您的功能组件这样的道具:
@inject('store')
@observer
export default class PrivateRoute extends Component {
constructor (props) {
super(props);
this.store = this.props.store;
}
render () {
const { component, ...rest } = this.props;
return (
<Route {...rest} render={ props => (
fakeAuth.isAuthenticated ? (
React.createElement(component, props)
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
}
}