2017-08-29 57 views
1

例如即使值没有改变,是否可以自动运行?

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

我想要的console.log打印 “空格键” 三次。 我可以做这样的事情

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

有没有更好的办法?

+1

你为什么想要达到这个目标? – Alik

+0

@Alik我想用mobx来模拟类似事件的事情。例如,如果用户按两次相同的键,onkeypress = e => x.lastPressedKey = e.key'不起作用。 – ais

回答

0

观察者的整个观点是要真正避免你试图达到的目标。但是,您可以将lastPressedKey从字符串更改为包含日期时间的对象,因此即使字符串保持不变,日期时间也会发生变化,因此会触发重新渲染。

相关问题