Sono nuovo di ES6. Mi sono un po 'confuso su diversi modi di scrivere un componente React. Ho iniziato con un "React.createClass" quindi spostato in "estende React.Component" con la sintassi delle classi ES6.Refactor a Componente React dalla funzione alla classe ES6
seguito Redux esercitazione ora vedo che definiscono i componenti in questo modo
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
Come posso refactoring questa "funzione" si muove a una classe ES6 che si estende React.component? Immagino che il ritorno JSX sia il metodo render(), non è vero? E gli argomenti di testo onClick, completati?
Grazie
Questo è esattamente ciò che dovrebbe essere fatto. Solo perché * puoi * scrivere un componente come una classe ES6 non significa che tutte le componenti * dovrebbero * essere classi. –
Sto sostenendo la tua soluzione. Non sapevo che non è possibile utilizzare PropTypes.shape per gli oggetti di scena nel componente. –
Evita di rispondere alle domande con: "Il modo migliore per fare X è come l'ABC, quindi ecco l'ABC" - Voleva una versione ES6 della versione pura della funzione, NON una ripetizione del problema esatto a cui si riferiva. – holografix