react modules exports example ecmascript-6

ecmascript-6 - modules - module.exports javascript



no se puede exportar la funciĆ³n de flecha constante (1)

Como novedad en ES6, estaba intentando crear un componente funcional simple React como este

// ./Todo.jsx export default const Todo = ({ todos, onTodoClick, }) => ( <ul> {todos.map( (todo, i) => <li key = {i} onClick = {() => onTodoClick(i) } style = {{textDecoration: todo.completed ? ''line-through'': ''none'' }} > {todo.text} </li> )} </ul> )

Pero

// Another file import Todo from ''./Todos.jsx''; console.log(Todo) // undefined

No cedió la función de flecha.

pero si dejo la parte "const todo =" en el enlace de exportación, como así

export default ({ todos, onTodoClick, }) => (...)

Se importa con éxito.

¿Porqué es eso?


Está intentando exportar un valor predeterminado y declarar una variable al mismo tiempo, lo que no es una sintaxis válida.

Considere lo siguiente, ya que sabemos que puede declarar múltiples variables usando solo una instancia de la palabra clave, var a, b, c; La definición de exportación no tendría ningún sentido en absoluto.

export default var a, b, c;

¿Qué significaría eso? ¿Qué se exportaría?

Además, el uso de la sintaxis export default ya crea una variable llamada default que debe contener un valor o referencia.

Exporte la variable en su lugar si desea convertirla en una constante.

const Todo = () => {}; export default Todo;

Hay un hilo sobre esto en ESDiscuss