JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="http://cdn.sencha.io/ext-4.1.1-gpl/resources/css/ext-all.css">

JavaScript

Ext.onReady(function(){
    
    var ffield = {
        xtype: 'filefield',
        fieldLabel: 'Upload',
        name: 'file[]',
        labelWidth: 50,
        msgTarget: 'side',
        allowBlank: false,
        anchor: '100%',
        listeners:{
            'change': {
                fn: function(f, value) {
                    form.add(ffield);
                },
                single: true
            }
        }
    }
    
    var form = Ext.create('Ext.form.Panel', {
        title: 'Upload',
        width: 400,
        bodyPadding: 10,
        frame: true,
        renderTo: Ext.getBody(),
        items: [ffield],

        buttons: [{
            text: 'Upload',
            handler: function() {
                var form = this.up('form').getForm();
                if(form.isValid()){
                    alert('upload');
                }
            }
        }]
    });

});