       # if id is undefined, render as loading. loadableItem is waiting for id to be retrieved.
       return true unless id?
 
-      if store.get(id)
+      if store.get(id, options)
         false
-      else if isLoading(id)
+      else if isLoading(id, options)
         true
-      else if isLoaded(id)
+      else if isLoaded(id, options)
         false
-      else if store.isUnknown(id) or store.reload(id)
+      else if store.isUnknown(id, options) or store.reload(id, options)
         true
-      else if store.isNew(id) and store.get(id).id and saved
+      else if store.isNew(id, options) and store.get(id, options).id and saved
         # If this store was just created, then call the onSaved prop
         saved()
       else

  componentDidUpdate: (oldProps) -> @reload(oldProps)

  reload: (oldProps) ->
    {id, store, load, actions} = @props

    return unless id?

    # Skip reloading if all the props are the same (the case in the Calendar for some reason)
    if oldProps.id is id and oldProps.store is store and oldProps.actions is actions and oldProps.load is load
      return

    load ?= actions.load
    unless store.isNew(id)
      load(id)

  render: ->
    {id, store, actions, load, isLoaded, isLoading, renderItem, saved, renderLoading, renderError, renderBug, update} = @props

    load ?= actions.load
    isLoaded ?= store.isLoaded

  displayName: 'LoadableItem'
  propTypes:
    id: React.PropTypes.string.isRequired
    options: React.PropTypes.object
    store: React.PropTypes.object.isRequired
    actions: React.PropTypes.object.isRequired
    renderItem: React.PropTypes.func.isRequired
