ステートレスで純粋なダムコンポーネントをエクスポートするにはどうすればよいですか?
クラスを使用すると、これは機能します:
import React, { Component } from 'react';
export default class Header extends Component {
render(){
return <pre>Header</pre>
}
}
ただし、純粋な関数を使用する場合、機能させることはできません。
import React, { Component } from 'react';
export default const Header = () => {
return <pre>Header</pre>
}
基本的なものが欠けていますか?
ES6はexport default const
を許可しません。最初に定数を宣言してからエクスポートする必要があります。
const Header = () => {
return <pre>Header</pre>
};
export default Header;
この制約は、禁止されているexport default a, b, c;
の書き込みを避けるために存在します。デフォルトとしてエクスポートできる変数は1つだけです
補足として。最初に変数を宣言することなく、技術的にexport default
を実行できます。
export default () => (
<pre>Header</pre>
)
代入の代わりに関数宣言を使用することもできます。
export default function Header() {
return <pre>Header</pre>
}
この例では、すでに中括弧とreturn
を使用しているため、妥協することなく、明らかにニーズと一致しています。
あなたは2つの方法でそれを行うことができます
1)
// @flow
type ComponentAProps = {
header: string
};
const ComponentA = (props: ComponentAProps) => {
return <div>{props.header}</div>;
};
export default ComponentA;
2)
// @flow
type ComponentAProps = {
header: string
};
export const ComponentA = (props: ComponentAProps) => {
return <div>{props.header}</div>;
};
default
を使用する場合、次のようにインポートします
import ComponentA from '../shared/componentA'
default
を使用しない場合は、次のようにインポートします
import { ComponentA } from '../shared/componentA'