import React, { Component } from 'react'
import { connect } from 'react-redux';
export default function(strategies = []) {
class Authentication extends Component {
constructor() {
super()
this.state = {
allGreen: true
}
}
componentWillMount() {
const { history } = this.props
strategies.map(strategy => {
if (!this.props.auth[strategy]) {
this.setState({ allGreen: false })
history.replace('/')
}
})
}
componentWillUpdate(nextProps, nextState) {
const { history } = this.props
strategies.map(strategy => {
if (!nextProps.auth[strategy]) {
this.setState({ allGreen: false })
history.replace('/')
}
})
}
render() {
if (!this.state.allGreen) return (<div></div>)
return this.props.children
}
}
function mapStateToProps(state) {
return {
auth: state.auth
}
}
return connect(mapStateToProps)(Authentication)
}
Ich verwende 'destructor Objekt' in der Regel in ES6Kann ich in ES6 mit react ein Objekt nur einmal für die Verwendung in mehreren Methoden destrukturieren?
Zum Beispiel const {Geschichte} = this.props wie.
aber ich möchte wissen, ob es eine effiziente Art und Weise ist nur ein Objekt der Zerstörung zu haben, und verwenden Sie es in allen Verfahren der Komponente. (ComponentWillMount, componentWillUpdate ...)
Bild oben, benutzte ich Objekt zweimalige Zerstörung in der ComponentWillMount-Methode und ComponentWillUpdate-Methode. (const {history} = this.props)
Ich möchte Objekt nur einmal zerstören! Gibt es eine Lösung?
Können Sie das Beispiel-Javascript als Text und nicht als Bild posten? – evolutionxbox
@evolutionxbox sicher – nujabes
Sie meinen, Destrukturierung, nicht Zerstörung, richtig? –