Comments (5)
Thanks for the report. Can you please produce a complete minimal example so we can easily reproduce? Thank you!
from om.
I had similar moments before, not in Om though, but the issue at hand is that first the event dom/a on-delete
is fired which deletes the item and then bubbles up to dom/li on-mark
, your fix is pretty much the way to go here.
Don't think its an issue with Om, apart from maybe warning about "dead" components.
from om.
This is the simplest code I was able to reach reproducing the problem. I hope it helps.
(ns om-examples.events
(:require [om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]))
(defn on-delete [e item items]
(.log js/console js/arguments)
(om/update! items #(vec (remove #{(om/value item)} %))))
(defn item [item node items]
(om/component
(dom/li nil
(dom/a #js {:onClick (om/bind on-delete item items)}))))
(defn app [cursor node]
(reify
om/IDidMount
(did-mount [_ _]
(let [links (.call (.-slice js/Array.prototype)
(.getElementsByTagName js/document "a"))]
(doseq [l links] (.click l))))
om/IRender
(render [_]
(dom/section nil
(om/build-all item (:items cursor)
{:opts (:items cursor)})))))
(om/root {:items [[1] [2] [3]]} app js/document.body)
Here is the output using [om "0.1.4"]:
[SyntheticMouseEvent, om.core.IndexedCursor, om.core.IndexedCursor]
[SyntheticMouseEvent, om.core.IndexedCursor, om.core.IndexedCursor]
[SyntheticMouseEvent, null, om.core.IndexedCursor]
Uncaught Error: No protocol method ICursor.-value defined for type null:
from om.
Thanks much, will take a look and see if this something we actually need to address.
from om.
This is definitely not an Om bug. There are many cases where this could occur because of concurrency, you need to recheck your assumptions in your event handler before acting.
from om.
Related Issues (20)
- Can't add custom children on remote ast
- Adding `index` as a parameter to `f` when using build-all HOT 1
- A component that implements IQuery needs data returned, otherwise even statically defined dom elements do not get rendered.
- [Wiki] Components, Identity, & normalization wiki link broken
- Bug on master: `mounted?` breaks in adv optimization
- No queries exist for component path HOT 4
- In reloadable workflow, "No queries exist for component path..."
- Specify :remote reads in transact! HOT 1
- Examples should use `defui`
- om.core and beta2 HOT 8
- Reconciler broken in ClojureScript 1.10.* HOT 6
- om.next Quickstart issues HOT 1
- Wiki Quick Start project.clj doesn't work with java 10 HOT 2
- [Wiki] Quick Start (om.next) - to see console logs Chrome users should enable Verbose output
- uri? already refers to: cljs.core/uri? being replaced by: cognitect.transit/uri? HOT 1
- Add support for componentDidCatch
- Arity exception when calling om.next/reader and om.next/writer with zero arguments in Clojure
- Advanced cljsbuild with default settings emits a warning
- Looks like the updates to GitHub have messed up the om.next docs HOT 1
- Readme Quick Start compilation fails @ bumping cljs version from 1.10.520 -> 1.10.597
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from om.