Thanks, that was not clear to me. Now it's working again :)

On Tuesday, May 6, 2014 12:00:16 AM UTC+2, David Nolen wrote:
> http://facebook.github.io/react/docs/component-api.html. Remember `owner` is 
> a real React instance.
> 
> 
> David
> 
> 
> 
> 
> On Mon, May 5, 2014 at 5:55 PM, Roman Scherer <[email protected]> 
> wrote:
> 
> Hi David,
> 
> 
> 
> thanks for the confirmation. Is there a way I can detect if the
> 
> component is mounted? I first tried adding a :mounted? flag to
> 
> component state and set/change it in will-mount and
> 
> will-unmount. But I get the same error when I call om/set-state!
> 
> in will-unmount.
> 
> 
> 
> Roman
> 
> 
> 
> 
> On Monday, May 5, 2014 11:43:33 PM UTC+2, David Nolen wrote:
> 
> > Setting up go blocks in mount/unmount is fine in my opinion, but yes, you 
> > must handle the concurrency issues that arise from doing this.
> 
> >
> 
> >
> 
> > David
> 
> >
> 
> >
> 
> >
> 
> >
> 
> 
> 
> > On Mon, May 5, 2014 at 5:32 PM, Roman Scherer <[email protected]> 
> > wrote:
> 
> >
> 
> > Hi,
> 
> >
> 
> >
> 
> >
> 
> > I think I'm running into a race condition while using om and
> 
> >
> 
> > core.async. I have code like this:
> 
> >
> 
> >
> 
> >
> 
> >     om/IWillMount
> 
> >
> 
> >     (will-mount [this]
> 
> >
> 
> >       (go (let [image (<! (load-image (om/get-state owner :url)))]
> 
> >
> 
> >             (om/set-state! owner :width (:width image))
> 
> >
> 
> >             (om/set-state! owner :height (:height image)))))
> 
> >
> 
> >
> 
> >
> 
> > The load-image fn returns a channel. Then I do a blocking read on
> 
> >
> 
> > that channel and at some point later, it returns a map which I
> 
> >
> 
> > save to the component's local state.
> 
> >
> 
> >
> 
> >
> 
> > Mounting, unmounting and remounting works fine with one
> 
> >
> 
> > component. However, when I have more than one instances of this
> 
> >
> 
> > component and I remount them I get most of the time the following
> 
> >
> 
> > error.
> 
> >
> 
> >
> 
> >
> 
> >     Uncaught Error: Invariant Violation: forceUpdate(...): Can
> 
> >
> 
> >     only force an update on mounted or mounting components.
> 
> >
> 
> >
> 
> >
> 
> > This looks like the calls to om/set-state! within the go block
> 
> >
> 
> > are sometimes called when the component is already unmounted.
> 
> >
> 
> >
> 
> >
> 
> > Now I'm wondering if I'm doing something wrong and have some
> 
> >
> 
> > questions.
> 
> >
> 
> >
> 
> >
> 
> > * Is it bad style to use go blocks in the will-mount/did-mount fn
> 
> >
> 
> > and set state in them?
> 
> >
> 
> >
> 
> >
> 
> > * Do other people have similar issues, and how to work around?
> 
> >
> 
> >
> 
> >
> 
> > * Any other idea what's going on?
> 
> >
> 
> >
> 
> >
> 
> > Thanks, Roman.
> 
> >
> 
> >
> 
> >
> 
> > --
> 
> >
> 
> > Note that posts from new members are moderated - please be patient with 
> > your first post.
> 
> >
> 
> > ---
> 
> >
> 
> > You received this message because you are subscribed to the Google Groups 
> > "ClojureScript" group.
> 
> >
> 
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to [email protected].
> 
> >
> 
> > To post to this group, send email to [email protected].
> 
> 
> 
> >
> 
> > Visit this group at http://groups.google.com/group/clojurescript.
> 
> 
> 
> --
> 
> Note that posts from new members are moderated - please be patient with your 
> first post.
> 
> ---
> 
> You received this message because you are subscribed to the Google Groups 
> "ClojureScript" group.
> 
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> 
> To post to this group, send email to [email protected].
> 
> Visit this group at http://groups.google.com/group/clojurescript.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to