title: Set an immutable whose value is empty list to an empty list
body: <p>If I set an immutable whose value was empty list to an empty list, it seems the immutable is considered changed. Can someone explain why this is happening? I thought they both mean <code>null</code>, thus should not be considered changed.</p>
  
  <p>This question raised when I was using React Native. When a state which was originally [] was set to [] again, all associated events were triggered.</p>
  
  <pre><code>import React, { PropTypes } from 'react';
  import Meteor, { createContainer } from 'react-native-meteor';
  import ChatListView from './ChatListView';
  import {connect} from 'react-redux';
  import { addRoomList, addRoom, updateLastMsg } from './ChatListState';
  
  const ChatListViewContainer = (props) =&gt; {
    const {
      listReady, rooms, messages,
      userId, authToken,
      addRoomList, addRoom, updateLastMsg
    } = props;
    console.log('container', rooms);
    console.log('container', messages);
    return (
      &lt;ChatListView
        listReady={listReady}
        rooms={rooms}
        messages={messages}
        userId={userId}
        authToken={authToken}
        addRoomList={addRoomList}
        addRoom={addRoom}
        updateLastMsg={updateLastMsg}
      /&gt;
    );
  };
  
  ChatListViewContainer.propTypes = {
    listReady: PropTypes.bool,
    rooms: PropTypes.array,
    messages: PropTypes.array,
  };
  
  const MeteorContainer = createContainer(() =&gt; {
    const handle0 = Meteor.subscribe('userChannels', Meteor.userId());
    const roomHandle = Meteor.subscribe('room', 'channels');
    const messagesHandle = Meteor.subscribe('messages', 'GENERAL');
    return {
      listReady: roomHandle.ready()&amp;&amp;messagesHandle.ready(),
   // the two lines below are responsible for the update of value 
   // originally rooms =[], messages =[], then something equivalent to 
   // rooms =[], messages =[] got executed
   // Then it considers the immutables as changed 
   // and triggers the mechanism of Redux
  
      rooms: Meteor.collection('room').find(),
      messages: Meteor.collection('messages').find(),
    };
  }, ChatListViewContainer);
  
  export default connect(
    state =&gt; ({
      userId: state.getIn(['auth','currentUser','userId']),
      authToken: state.getIn(['auth','authenticationToken'])
    }),
    dispatch =&gt; ({
      addRoomList(roomList) {
        dispatch(addRoomList(roomList));
      },
      addRoom(rid) {
        dispatch(addRoom(rid));
      },
      updateLastMsg(msg) {
        dispatch(updateLastMsg(msg));
      }
    })
  )(MeteorContainer)
  </code></pre>