web-dev-qa-db-fra.com

Exporter plus d'une variable dans ES6?

J'essaie d'exporter plus d'une variable dans ES6:

exports.js

var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')

export default TestObject
export Post

main.js:

import TestObject from '../store'
import Post from '../store'

var testObject = new TestObject() // use Post in the same way
testObject.save(json).then(object => {
  console.log('yay! it worked', object)
})

Je comprends qu'il n'y a qu'une seule valeur par défaut, j'ai donc uniquement utilisé default dans le premier élément.

Cependant, je reçois ce message d'erreur:

Module build failed: SyntaxError: /home/alex/node/my-project/src/store/index.js: Unexpected token (9:7)
   7 | 
   8 | export default TestObject
>  9 | export Post

Peut-être que je le fais mal?

24
alexchenco

Ce n'est pas une syntaxe valide. Tu peux faire

export {Post}

ou même juste

export var Post = Parse.Object.extend('Post')

ou raccourcir le fichier entier à

export default Parse.Object.extend('TestObject')
export var Post = Parse.Object.extend('Post')

Vos importations sont également incorrectes, vous aurez envie de le faire

import TestObject, {Post} from '../store'

C'est si vous voulez vraiment une seule exportation par défaut et une exportation nommée distincte. Vous pouvez également créer deux exportations nommées et ne pas avoir de valeur par défaut si vous le souhaitez, par exemple.

export var TestObject = Parse.Object.extend('TestObject'),
    Post = Parse.Object.extend('Post')

et

import {TestObject, Post} from '../store'
47
loganfsmyth

Vous pouvez exporter plusieurs objets comme celui-ci dans ES6

var TestObject = Parse.Object.extend('TestObject')
var Post = Parse.Object.extend('Post')

export {
    TestObject,
    Post
}

Ensuite, lors de l'importation, faites-le comme ceci:

import { TestObject, Post } from './your-file';

Vous pouvez tout lire sur import et export ici.

24
Mario Tacke