2017-08-29 3 views
1

Zum BeispielIst es möglich, selbst dann zu autorisieren, wenn sich der Wert nicht ändert?

var x = observable({lastPressedKey:""}); 
autorun(() => console.log(x.lastPressedKey)); 
x.lastPressedKey = "spacebar" 
x.lastPressedKey = "spacebar" 
x.lastPressedKey = "spacebar" 

Ich möchte, dass console.log prints "Leertaste" dreimal. Ich kann

x.lastPressedKey = ["space", Date.now()] 
x.lastPressedKey = ["space", Date.now()] 
x.lastPressedKey = ["space", Date.now()] 

Gibt es eine bessere Art und Weise so etwas tun?

+1

Warum möchten Sie dies erreichen? – Alik

+0

@Alik Ich möchte etwas wie Ereignisse mit Mobx emulieren. Zum Beispiel funktioniert 'onkeypress = e => x.lastPressedKey = e.key' nicht, wenn der Benutzer die gleiche Taste zweimal drückt. – ais

Antwort

0

Der ganze Sinn eines Observablen ist eigentlich zu vermeiden, was Sie erreichen wollen. Sie können jedoch den lastPressedKey von einer Zeichenfolge in ein Objekt ändern, das datetime enthält, so dass bei einer Änderung der datetime ein erneuter Verweis ausgelöst wird, selbst wenn die Zeichenfolge gleich bleibt.

Verwandte Themen