JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-beta.3/js/select2.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-beta.3/css/select2.min.css">
<form action="" id="tagForm">
    <select multiple="true" name="tags[]" id="tagSelector" class="form-control select2">
        <option value="1">Awsome</option>
        <option value="2">Cool</option>
        <option value="3">Balls</option>
    </select>
</form>
<div class="well" id="console">
     <h3>Tag events:</h3>

</div>

JavaScript

$('.select2').select2({
    tags: true,
    tokenSeparators: [",", " "],
    createTag: function (tag) {
        return {
            id: tag.term,
            text: tag.term,
            isNew : true
        };
    }
}).on("select2:select", function(e) {
    if(e.params.data.isNew){
        $('#console').append('<code>New tag: {"' + e.params.data.id + '":"' + e.params.data.text + '"}</code><br>');
        $(this).find('[value="'+e.params.data.id+'"]').replaceWith('<option selected value="'+e.params.data.id+'">'+e.params.data.text+'</option>');
    }
});