Хранилище React-Native MobX-State-Tree недоступно для регистраКомпонент - PullRequest
0 голосов
/ 28 марта 2019

При следующей настройке:

import { AppRegistry } from "react-native";
import { Provider } from "mobx-react";
import Application from "./src/components/Application";
import ApplicationStore from "./src/stores/ApplicationStore";
import { name as appName } from "./app.json";

let app = ApplicationStore.create();

AppRegistry.registerComponent(name, () => (
  <Provider app={app}>
    <Application />
  </Provider>
));

ApplicationStore не определен и, следовательно, не может быть создан ...

Cannot read property 'create' of undefined

Module AppRegistry is not a registered callable module (calling runApplication)

Есть ли лучший способ настроить ApplicationStore и сделать его доступным для компонентов с помощью inject?

const Application = inject("app")(
  observer(
    class Application extends Component {
    ...

Вот как я сделал это в приложениях реагирования (), хотя и через ReactDOM.render() ...

Как всегда и все направления приветствуются, поэтому спасибо заранее!

1 Ответ

0 голосов
/ 28 марта 2019

Хорошо, так что должная осмотрительность для выигрыша!

import React from "react";
import { AppRegistry } from "react-native";
import { Provider } from "mobx-react";
import Application from "./src/components/Application";
import { ApplicationStore } from "./src/stores/ApplicationStore";
import { name as appName } from "./app.json";

const app = ApplicationStore.create();
const ApplicationProvider = () => {
  return (
    <Provider app={app}>
      <Application />
    </Provider>
  );
};

AppRegistry.registerComponent(appName, () => ApplicationProvider);

и затем внутри вашего компонента:

const Application = inject("app")(
  observer(
    class Application extends Component {
      render() {
        return (
          <View style={styles.container}>
            <Text>Application</Text>
          </View>
        );
      }
    }
  )
);

Теперь хранилище доступно для всех компонентов и создается в началеприложение ...

...