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: [",", " "]
}).on("change", function(e) {
    var isNew = $(this).find('[data-select2-tag="true"]');
    if(isNew.length && $.inArray(isNew.val(), $(this).val()) !== -1){
        isNew.replaceWith('<option selected value="' + isNew.val() + '">' + isNew.val() + '</option>');
        $('#console').append('<code>New tag: {"' + isNew.val() + '":"' + isNew.val() + '"}</code><br>');
    }
});