web-dev-qa-db-ja.com

ES6モジュールでオブジェクトの一部をインポートする方法

react documentation で、PureRenderMixinをインポートするこの方法を見つけました

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

どのようにしてES6スタイルで書き直すことができますか。私ができる唯一のことは:

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

もっと良い方法があるといいのですが。

16
Glen Swift

残念ながら importステートメントobject destructuring のようには機能しません。ここで中括弧は、デフォルトのエクスポートのプロパティではなく、この名前でトークンをインポートすることを意味します。このインポート/エクスポートのペアを見てください:

 //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'

あなたのケースでは、オブジェクト全体をインポートして、破壊的な割り当てを行うことができます

 import addons from "react/addons";
 let {addons: {PureRenderMixin}} = addons;
21
just-boris
import PureRenderMixin from 'react-addons-pure-render-mixin';

here を参照してください。

4
Daniel Storch