次のイベントループで関数を実行するいくつかの方法

vue.jsだと、vue.nextTickでできる


this.$nextTick(()=>{
  ...
});

Javascriptでよく使われるのはsetTimeout


setTimeout(()=>{
  ...
},0)

Promiseでもできる


Promise.resolve().then(() => {
  ...
});

ちょっと違うけど、ReactだとsetStateで関数を実行することで、上記の代替になるかも


setState(()=>{
 ...
})

[IE][ES6] Assignment to read-only properties is not allowed in strict modeを回避

ReactでUIを動的に変化させる実装をしていてEdge/IEで、


Assignment to read-only properties is not allowed in strict mode

とエラった。

これは、


const cell = findDOMNode(this.refs.cell);
let _rect = cell.getBoundingClientRect();
_rect.y += 10;

みたいに、DOMのRectがread-onlyのものに代入するとでるから、


let _rect = cell.getBoundingClientRect();
let _rect2 = $.extend(true,{},_rect);
_rect2.y += 10;

って感じでディープコピーしてやる