Так как myMap является неизменным, всякий раз, когда вы пытаетесь установить/обновить/удалить некоторые данные внутри него, он вернет ссылку на новые данные. Таким образом, вам нужно будет установить его для переменной, чтобы получить к ней доступ (в данном случае myNewMap).
Ответ 2
Если массив, на который ссылается ключ, представляет собой простой массив javascript - тогда вы действительно будете мутировать это значение, поэтому ваш код будет работать как ожидалось (т.е. myMap будет содержать изменяемый/мутированный массив в "ключе" с новым нажатием кнопки newData in.) Однако этот вид побеждает цель неизменности, поэтому я бы рекомендовал, чтобы ключ в myMap ссылался на Immutable.List. В этом случае вы захотите сделать:
var newMap = myMap.set('key', myMap.get('key').push(newData))