我曾经使用过类似_.CloneDeep的lodash函数来复制对象数组 但我需要此数组的浅表副本 请考虑以下代码:
@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
答案 0 :(得分:1)
这不是特定于mobx
@observable.ref trades: Array<TradeType> = [];
@action attachNewTrade = (trade: TradeType): Array<TradeType> => {
this.trades = [...this.trades, trade]
}
您需要复制的原因是React无法检测到对象/数组的内部更改,因此您需要更改引用以通知React某些更改。
如果您想以更多的方式解决问题,请检查https://github.com/mobxjs/mobx/issues/1489
答案 1 :(得分:1)
我遇到了同样的问题,我用mobx的toJS
:https://mobx.js.org/refguide/tojson.html