質問: initialstate.todo, action) { // ... } 同様のエラーは中括弧のついた私のコンポーネントにも起こります。私が知っているように、複数のコンポーネント/モジュールをインポートするとき、明らかにそれらを中括弧で囲まなければならないので、単一のインポートのために中括弧を使うべきかどうか疑問に思いました。編集する here のso投稿は私の質問に答えませんが、代わりにwhenを要求しています。 single のインポートには中括弧を使用する必要があります。または、es6で単一のモジュールをインポートするために中括弧を使用してはいけません(中括弧が必要な単一インポートを見たので、これは明らかに当てはまりません)。
回答: これはデフォルトのインポートです。// b.js import a from './a' aがデフォルトのエクスポートを持っている場合にのみ機能します。// a.js export default 42 この場合、インポート時にどの名前を付けてもかまいません。// b.js import a from './a' import mya from './a' import something from './a' なぜならそれはaのdefault exportがどんなものでも解決するからです。これは名前付きインポートはaです。import { a } from './a' aが名前付きエクスポートはaを含む場合にのみ機能します。export const a = 42 この場合、エクスポート名による特定のものをインポートしているため、名前が重要になります。// b.js import { a } from './a' import { mya } from './a' // doesn't work! import { something } from './a' // doesn't work! これらを機能させるには、aに対応する名前付きエクスポートを追加します。// a.js export const a = 42 export const mya = 43 export const something = 44 モジュールは1つのデフォルトのエクスポートしか持てませんが、あなたが望むのと同じだけ多くの名前付きエクスポート _(0、1、2、または多く)それらをまとめてインポートすることができます。// b.js import a, { mya, something } from './a' ここでは、デフォルトのエクスポートをaとしてインポートし、exportsという名前をそれぞれmyaおよびsomethingとします。// a.js export default 42 export const mya = 43 export const something = 44 インポート時に、それらすべてに異なる名前を割り当てることもできます。// b.js import x, { mya as myx, something as xsomething } from './a' デフォルトのエクスポートは、通常モジュールから取得することを期待しているものすべてに使用される傾向があります。名前付きエクスポートは、便利なユーティリティに使用される傾向がありますが、必ずしも必要というわけではありません。ただし、エクスポート方法を選択するのはあなた次第です。たとえば、モジュールにはデフォルトのエクスポートがまったくない場合があります。 これは、デフォルトエクスポートと名前付きエクスポートの違いを説明した、esモジュールの優れたガイドです。