鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ mobx 修改 store 是異步的?

mobx 修改 store 是異步的?

圖片描述

changeTest 方法是把 mobx 中的 test 從0改為1,但是控制臺打印出來的依然是0,是什么原因呢?
怎么解決?

回答
編輯回答
孤酒

這取決于你的 changeTest 是同步還是異步,如果這個方法同步更改,那取到的 test 就是修改后的,因為訪問的都是同一個引用,不存在其他問題。

不過你這里的 test 是 this.props.test,如果是從父組件傳下來的,還涉及到父組件的 render 問題,因為改值后,test 是從 props 傳下來的,如果子組件要感知變化,必須是在 render 里才能感知,因為父組件 re-render 才會給這個組件重新傳 props。跑偏了,這是渲染的問題。mobx 都是直接引用,只要確保這個,應(yīng)該是會取到的...

另外,mobx 最重要的還是依賴收集,你這個 case 跟依賴無關(guān),可以多關(guān)心一下 render 函數(shù)里的使用。

2017年4月14日 17:31