Warum den Status einer Reaktionskomponente außerhalb des Konstruktors festlegen?
So habe ich gerade den Quellcode von einem React-Framework heruntergeladen und im Terminal wird dieser Fehler angezeigt:
ERROR in ./src/components/TextEditor.js
Module build failed: SyntaxError: Unexpected token (24:8)
22 |
23 | // Set the initial state when the app is first constructed.
> 24 | state = {
| ^
25 | state: initialState
26 | }
27 |
Meine Frage ist, warum Leute den Status einer React Component so einstellen. Was nützt es, wenn es bei manchen Menschen zu Fehlern kommt? Gibt es auch ein Babel-Preset oder -Plugin, mit dem ich diesen Fehler verhindern kann?
Dies ist, wie ich normalerweise den Status einer Komponente festlege, und nach dem, was ich gesehen habe, ist dies konventionell:
constructor() {
super();
this.state = {
state: initialState
};
}
Für den Datensatz ist dies das gesamte Dokument:
// Import React!
import React from 'react'
import {Editor, Raw} from 'slate'
const initialState = Raw.deserialize({
nodes: [
{
kind: 'block',
type: 'paragraph',
nodes: [
{
kind: 'text',
text: 'A line of text in a paragraph.'
}
]
}
]
}, { terse: true })
// Define our app...
export default class TextEditor extends React.Component {
// Set the initial state when the app is first constructed.
state = {
state: initialState
}
// On change, update the app's React state with the new editor state.
render() {
return (
<Editor
state={this.state.state}
onChange={state => this.setState({ state })}
/>
)
}
}