2015-05-08 29 views
7

Nel react documentation ho trovato questo modo per importare PureRenderMixinCome importare parte di oggetto in moduli ES6

var PureRenderMixin = require('react/addons').addons.PureRenderMixin; 

Come può essere riscritto in stile ES6. L'unica cosa che posso fare è:

import addons from "react/addons"; 
let PureRenderMixin = addons.addons.PureRenderMixin; 

spero che ci sia un modo migliore.

+0

Forse 'importazione {Addons: {PureRenderMixin}} dal 'reagiscono/addons'' – elclanrs

+0

@elclanrs no (almeno non sta lavorando con Babel) –

+0

Questo è molto simile al [opzioni Passando alle importazioni di moduli ES6] (http : //stackoverflow.com/q/29923879/1048572) - non ancora possibile. – Bergi

risposta

14

Purtroppo import statements non funziona come object destructuring. Le parentesi graffe indicano che si desidera importare un token con questo nome ma non una proprietà di esportazione predefinita. Guarda a questo coppie di import/export:

//module.js 
export default 'A'; 
export var B = 'B'; 

//script.js 
import A from './a.js'; //import value on default export 
import {B} from './a.js'; // import value by its name 
console.log(A, B); // 'A', 'B' 

Per il vostro caso è possibile importare tutto l'oggetto e fare un incarico destrutturazione

import addons from "react/addons"; 
let {addons: {PureRenderMixin}} = addons; 
+4

'import {addons} da 'react/addons'; const {PureRenderMixin} = addons; 'funziona anche. Dai un'occhiata anche a https://github.com/gaearon/react-pure-render#mixin –

3
import PureRenderMixin from 'react-addons-pure-render-mixin'; 

Vedi esempio here.

Problemi correlati