Was entspricht in es5 dem folgenden Code?Was entspricht in es5 dem folgenden Code?
constructor(props) {
super(props);
this.state = { ...this.props };
}
Was entspricht in es5 dem folgenden Code?Was entspricht in es5 dem folgenden Code?
constructor(props) {
super(props);
this.state = { ...this.props };
}
würde Dieser Code in etwa so aussehen, ohne eine> = ES6 Syntax.
function MyComponent(props) {
// super(props)
React.Component.call(this, props);
// this.state = { ...this.props };
this.state = Object.assign({}, props);
}
Babel Website has a repl, die Sie sehen, verwenden können, um genau das, was der kompilierte Code aussehen wird.
In diesem Fall it's quite complex, weil es größtenteils in den Klassen-Dienstprogrammen eingewickelt ist, die Babel verwendet, um ES6-Klassen für ES5 zu füllen.
Das zweite Beispiel für this.state = { editFlag : false, ...this.props }
würde ähnlich sein.
this.state = Object.assign({}, editFlag: false, this.props);
'this.state = Object.assign ({}, this.props)' – chenkehxx
Ich denke Object.assign zählt immer noch als es6. http://www.ecma-international.org/ecma-262/6.0/#sec-object.assign. Mit es5 müssen Sie nur alles kopieren oder verwenden Sie Helfer in Unterstreichung oder lodash –
Sie könnten Babel immer zu ES5-Code kompilieren und sehen, was es tut. – jfriend00