我用lodash函数就像_.CloneDeep用于对象数组复制但是我需要这个数组的浅拷贝请考虑以下代码:
@observable.ref trades: Array<TradeType> = [];
@action attachNewTrade = (trade: TradeType): Array<TradeType> => {
let newTrades = _.CloneDeep(this.trades)
newTrades.push(trade)
this.trades = newTrades
}
我在这个项目中使用React + Mobx特别是我需要Observable函数,而不是immutable.js的JSON
这不是mobx特有的
@observable.ref trades: Array<TradeType> = [];
@action attachNewTrade = (trade: TradeType): Array<TradeType> => {
this.trades = [...this.trades, trade]
}
您需要复制的原因是React无法检测到对象/数组的内部更改,因此您需要更改引用以通知React某些内容已更改。
如果你想要更多mobx方式的解决方案,请检查https://github.com/mobxjs/mobx/issues/1489
我有同样的问题,我用mobx的toJS
解决了它:https://mobx.js.org/refguide/tojson.html