Ich bin neu in ES6. Ein bisschen verwirrt über verschiedene Möglichkeiten, eine React-Komponente zu schreiben. Ich begann mit einer "React.createClass" und wechselte dann zu "extends React.Component" mit ES6-Klassensyntax.Umgestalten Reagieren Komponente von Funktion zu ES6 Klasse
Nach Redux Tutorial jetzt sehe ich sie definieren Komponenten auf diese Weise
import React, { PropTypes } from 'react'
const Todo = ({ onClick, completed, text }) => (
<li onClick={onClick} style={{ textDecoration: completed ? 'line-through' : 'none' }} >
{text}
</li>
)
Todo.propTypes = {
onClick: PropTypes.func.isRequired,
completed: PropTypes.bool.isRequired,
text: PropTypes.string.isRequired
}
export default Todo
Wie kann ich diese „Funktion“ Refactoring zu einer ES6 Klasse bewegt, die React.component erstreckt? Ich denke, die Rückgabe JSX ist die render() -Methode, oder? Was ist mit onClick, abgeschlossen, Textargumente?
Danke
Dies ist genau das, was getan werden sollte. Nur weil Sie * eine * Komponente als ES6-Klasse schreiben können, bedeutet das nicht, dass alle Komponenten * Klassen sein sollten. –
Ich unterstütze Ihre Lösung. Ich wusste nicht, dass Sie nicht PropTypes.shape für Requisiten in der Komponente verwenden müssen. –
Vermeiden Sie die Beantwortung von Fragen mit: "Der beste Weg, X zu machen, ist ABC, also hier ist ABC" - Er wollte eine ES6-Version der reinen Funktionsversion, KEINE Wiederholung des genauen Problems, auf das er sich bezog. – holografix