Инъекция хранилища MobX State Tree в ошибку реактивных компонентов - PullRequest
0 голосов
/ 09 ноября 2018

Проблема: я получаю сообщение об ошибке при попытке вставить хранилище MST в компонент класса реакции:

Error: Uncaught [Error: MobX injector: Store 'auth' is not available! Make sure it is provided by some Provider

ошибка возникает из-за компонента LoginForm, размещенного ниже, и является вложеннойпод другим компонентом (не уверен, что это проблема, так как каждый компонент нуждается в <Provider>?)

иерархии компонентов:

Application (contains no Provider)
    |__ Authentication (contains no Provider)
        |__LoginForm

небольшой код:

import { AuthenticationStore } from './stores/AuthenticationStore'

const auth = AuthenticationStore.create()

ReactDOM.render(
  <Provider auth={auth}>
    <Application />
  </Provider>,
  document.getElementById('root')
);


//Application
const Application = inject('auth')(observer(class Application extends 
Component {
  render() {
    console.log(this.props.auth) // logs the store as expected
    return (
      <div className={styles.applicationContainer}>
        <Authentication/>
      </div>
    )
  }
}))

export default Application

// LoginForm
const LoginForm = inject('auth')(observer(class LoginForm extends Component {
  render() {
    return (
       <div></div>
    )
  }
}))

export default LoginForm

и на вопрос:

Если не это, Каков предпочтительный протокол для передачи хранилища дочерним компонентам (без передачи в качестве реквизитов)?

Как всегда, заранее спасибо за любой вклад.Если это дубликат (я не смог найти эту конкретную ошибку), пометьте как таковую, и я обновлюсь соответствующим образом ...

...