【问题标题】:mobx & react-native issue: ERROR TypeError: undefined is not an object (evaluating 'AuthStore.modalUrl')mobx & react-native 问题:ERROR TypeError: undefined is not an object (evalating 'AuthStore.modalUrl')
【发布时间】:2021-10-26 04:42:10
【问题描述】:

请帮忙

尝试在带有版本的 react-native 应用中使用 mobx

        "react": "17.0.2",
        "react-native": "0.65.1",
        "mobx": "6.3.2",
        "mobx-react": "7.2.0",

App.js

  import { Provider } from "mobx-react";
  import { AuthStore } from './mobx/AuthStore'
  const authStore = new AuthStore()
  return (
    <NavigationContainer>  
    <NavigationContainer>   
      <StripeProvider publishableKey={'...'}>
        <Provider authStore={AuthStore}>
          <SafeAreaView style={backgroundStyle}>
            <MonitorApp/>
          </SafeAreaView>
        </Provider>
      </StripeProvider>
    </NavigationContainer>

AuthStore.js

import { observable, action, runInAction } from 'mobx';
class AuthStore {
    @observable urlModal = false;

    @observable provider;
  
    constructor() {
        makeObservable(this)
    }

}
const authStore = new AuthStore()
export default authStore

在 MonitorApp 的应用程序下方,我们有一个名为的 ReactComponent

import {inject, observer } from 'mobx-react';
@inject('authStore') @observer
class MonitorAppOverlay extends React.Component {
    renderModal() {
        const { authStore } = this.props;
        const { modalUrl } = authStore;
        console.log(this.props)
        console.log(AuthStore)
    }
}

export default MonitorAppOverlay

modalUrl 未定义且正在抛出。在此应用程序的先前版本中,使用与使用 mobx 相同的样式,使用 @inject 填充商店没有问题

有什么想法吗??

更新了正确的构造函数,现在一切正常

【问题讨论】:

    标签: javascript react-native mobile mobx


    【解决方案1】:

    现在您只需将存储构造函数传递给Provider,但您需要先创建AuthStore 的实例,然后将此实例传递给提供者。

    【讨论】:

      猜你喜欢
      • 2016-07-30
      • 2020-08-31
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多