Reactjs MobX reber рендерит цель - PullRequest
       9

Reactjs MobX reber рендерит цель

0 голосов
/ 29 августа 2018

Я новичок, чтобы реагировать, и я только начал использовать инструмент управления состоянием Mobx. Я читаю информацию о mobx здесь и там, но есть несколько понятий, которые я не понимаю.

  1. Я знаю, что реакция перерисовывается каждый раз, когда локальное состояние изменяется с помощью setState. Это цель повторного рендеринга - это компонент, в котором изменилось его локальное состояние (я прав?). Но для mobx, когда наблюдаемое свойство хранилища было изменено действием в компоненте, я не уверен, какой компонент будет перерисован здесь, потому что это измененное свойство не является «локальным», как в примере выше.

    Так, например, если я изменю наблюдаемое свойство, определенное в классе CityStore, в компоненте с именем city (предположим, что у меня есть и другие компоненты), то какие компоненты будут перерисованы? городской компонент получает рендеринг, потому что я изменил наблюдаемое свойство там? или все компоненты, использующие это наблюдаемое свойство, перерисовываются? Хотелось бы узнать механизм повторного рендеринга компонентов с оформлением @observer.

  2. Созданное хранилище mobx передается с использованием провайдера и @inject. Я не совсем уверен, что делает @inject. Если я хочу использовать магазин под названием cityStore в компоненте city, я делаю следующее: <Provider city = {cityStore}> <city/> </Provider>

    Затем компонент city и все его дочерние компоненты могут получить доступ и изменить cityStore. тогда зачем мне отдельно ставить @inject для каждого компонента, который хочет использовать cityStore, если я уже использовал провайдера? это просто синтаксис, поэтому провайдер и @inject всегда должны идти вместе? Так, например, если я позвонил <Provider city = {cityStore}> <city/> </Provider> в родительский компонент city и не поставил @inject для некоторых дочерних компонентов компонента city, этот компонент не сможет получить доступ к cityStore?

Описание вопроса немного длинное, но я буду очень признателен за ответы, спасибо!

...