Hier ist das ZielReact Destrukturierung umbenennen
Von einem app/Modul, das mit create-react-app
nicht
class Hoc extends React.Component {
render() {
const {component: Component} = this.props
return (
<div>
<Component />
</div>
)
}
}
Beschreibung:
Verwenden Grund ES6 Destrukturierung mit Umbenennungs so dass Das react-Element kann anstelle einer Variablen <Component />
als {component}
referenziert werden.
Ich habe dies erfolgreich in einer App aus create-react-app
erstellt. Diese Syntax ist im Buch fullstack react dokumentiert. Dieses Problem tritt in zwei Modulen für reaktive Module auf, an denen ich arbeite und die nicht aus create-react-app
erstellt wurden.
Der wahrscheinlichste Täter ist ein fehlendes Babel-Plugin. Die Anwendung, in der das Programm läuft, wurde ausgeworfen, so dass ich alle Abhängigkeiten und Plugins sehen kann, aber ich konnte keins identifizieren, das dafür funktioniert.
Hmmm, möglicherweise wird es von einem der Reaktionskripte gehandhabt, die nur mit create-react-app
kommen.
.babelrc
{
"presets": ["es2015", "stage-2", "react"],
"plugins": [
"add-module-exports"
]
}
Edit:
Dies ist ein ein Beispiel für die nackten Mindestanforderungen um das Problem zu zeigen gelöst werden. Seitenschrittlösungen wie this.props.children
und {React.cloneElement(this.props.component, {...this.props})}
sind keine Lösungen für das spezifische Problem. Prost!
Ich denke, es ist eher ein Anti-Muster, um eine Komponente als Requisite zu übergeben. Wenn sich diese Komponente ändert, könnten Sie einfach eine Flag-Stütze für die Komponente haben, die sie sein sollte, und dann reguläre Importe für jede mögliche Komponente verwenden und Logik verwenden, um die richtige zu rendern. Oder wenn Sie nur Kinder übergeben, verwenden Sie 'this.props.children'. – Sia
kannst du deine babel config zeigen? –