相关疑难解决方法(0)

MobX-在将数据注入到React组件时可以使用`inject`时为什么要使用`observer`

MobX文档建议我应该observer在所有组件上使用。但是,通过使用注入,我可以更精细地控制哪些数据导致组件的重新呈现。

我的理解是,有了observer,即使上一个可观察的对象嵌套在数据存储区的深处,上次渲染中所有访问的可观察的对象的更改也会导致重新渲染,而inject只有在注入器函数中访问的可观察对象发生更改时才重新渲染。

例如:

class Store{
  @observable data = {
    nestedData: {
      deepData: 'my_data'
    }
  }
}

const store = new Store();

... Assume the store is injected using <Provider /> component

// This will cause re-render when the data object changes
// for example: store.data = { new_data: 'new_data' }
@inject(stores => {
  return { data: stores.dataStore.data }; 
})
class MyComponent extends Component {  }

// This will re-render on change of the data …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-native mobx mobx-react

5
推荐指数
1
解决办法
3181
查看次数

标签 统计

javascript ×1

mobx ×1

mobx-react ×1

react-native ×1

reactjs ×1