每次用户更改某些内容时,我都会从后端获取完整的数据合同。我这样做是因为在后端执行验证/计算。因此,在获取之后,我将整个数据协定设置为root。以下示例回购。问题是,即使我获取了完全相同的数据,mobx也会重新渲染整个应用程序,因为PersonWithItem
取决于Data
。
我试图从observable
上移除Data
装饰器。在这种情况下,应用程序将根本不会重新呈现。猜猜是因为没有调用Data's
以外的其他吸气剂。我还尝试使用lodash的merge
来改变原始对象。 lodash的问题在于,如果我获取了一些undefined
道具,它将不会用值代替道具。因此,看来我必须编写自己的合并,这不是一个好选择。
在button
回调中说明了获取。
是否可以不显式设置Data
的每个道具来解决此问题?在真实应用中,我的Data
是一项大型业务合同,也是通用的。因此,由于通用代码不知道Data
的形状,因此我无法显式设置其所有属性。