Using action option changes the order of actions
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- typescript
- Ambito
- frontend
Direzione di ricerca
Inizia eseguendo l’esempio HTML autonomo dell’issue con l’output di debug di Stimulus abilitato, confrontando i due valori di data-action. Traccia la gestione delle opzioni dell’azione e l’ordine di dispatch, quindi verifica che l’aggiunta di :prevent non riordini one#foo e two#bar, preservando al contempo il comportamento dell’opzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In certain situations, using an action option such as :prevent can change the order in which actions registered in the same data-action are executed.
Here is a self-contained example demonstrating the problem:
<html>
<head>
<script type="module">
import { Application, Controller } from "https://unpkg.com/@hotwired/stimulus/dist/stimulus.js"
window.Stimulus = Application.start()
Stimulus.debug = true
Stimulus.register("one", class extends Controller {
foo() {}
})
Stimulus.register("two", class extends Controller {
bar() {}
})
</script>
</head>
<body>
<div data-controller="two">
<div data-controller="one">
<a href="#" data-action="one#foo two#bar">Click me</a>
</div>
</div>
</body>
</html>
Without the action option, the debug output shows the correct order:
one #foo
two #bar
However, if I use an action option:
<a href="#" data-action="one#foo:prevent two#bar">Click me</a>
The debug output shows the order in which actions are executed has changed:
two #bar
one #foo
This seems like a bug to me. I encountered it in a scenario where the order of actions was important, and it took me a while to realize it's because of the action option.
- Lingua principale
- TypeScript
- Stelle
- 13.1k
- Fork
- 442
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di hotwired/stimulus
-
Defining a `scope` getter on a controller breaks it with an error that does not name the causeForse già presa @czj l’ha presa 3 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
-
No new release in 3 years?Aperta
Difficoltà 4/5 1-3 ore Idoneità per principianti 15/100
-
Feature Request: Support Arrays values in `DOMTokenList`-styleForse già presa @myabc l’ha presa 118 giorni fa. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di hotwired/stimulus
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Northeastern-Electric-Racing/FinishLine#4660 ·
I maintainer di solito rispondono entro 2 giorni
-
BeOS .json missingAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
mihaip/infinite-mac#475 ·
-
Let TypeScript accept an initial object in ReactiveDictForse già presa @yograj-vijay-yadav l’ha presa oggi. Apertabug good first issue help wanted workshop
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
meteor/meteor#14919 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
marmelab/atomic-crm#401 ·
I maintainer di solito rispondono entro 1 giorno
-
account: profile
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 5 giorni