Just create individual components and export them under names:
//Field.js
class TextArea extends React.Component {
...
}
class Text extends React.Component {
...
}
export { Text, TextArea };
Then import all the names from the module:
import * as Field from './path/to/Field.js';
Or if you prefer exporting a default object like so (which is exactly what the example from the documentation is doing, just in a different way):
export default { Text, TextArea };
Which will use object shorthand properties and export a default member -- an object literal. Then you can import it like so:
import Field from './path/to/Field.js';
And finally:
<Field.TextArea ... />
Or, to get rid of dot notation (you can't do this with the default export option!):
import { Text, TextArea } from './path/to/Field.js';
<Text ... />
<TextArea ... />
Of course, going exactly by the React documentation, you could do, with class expressions:
const Field = {
Text: class Text extends React.Component { //you can omit the class name here
//can be stateless functional component if you don't need state
},
TextArea: class TextArea extends React.Component {
}
}
export default Field;
Then importing as a default member and using dot notation.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…