获取完整数据合约时如何不重新渲染整个应用程序

时间:2019-05-26 12:23:33

标签: mobx mobx-react

每次用户更改某些内容时,我都会从后端获取完整的数据合同。我这样做是因为在后端执行验证/计算。因此,在获取之后,我将整个数据协定设置为root。以下示例回购。问题是,即使我获取了完全相同的数据,mobx也会重新渲染整个应用程序,因为PersonWithItem取决于Data

我试图从observable上移除Data装饰器。在这种情况下,应用程序将根本不会重新呈现。猜猜是因为没有调用Data's以外的其他吸气剂。我还尝试使用lodash的merge来改变原始对象。 lodash的问题在于,如果我获取了一些undefined道具,它将不会用值代替道具。因此,看来我必须编写自己的合并,这不是一个好选择。

button回调中说明了获取。

https://github.com/paatrofimov/mobx-state-tree/blob/demo/packages/mst-example-todomvc/src/components/App.tsx

是否可以不显式设置Data的每个道具来解决此问题?在真实应用中,我的Data是一项大型业务合同,也是通用的。因此,由于通用代码不知道Data的形状,因此我无法显式设置其所有属性。

0 个答案:

没有答案