账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    react全局注入mobx,遇到的问题
    49
    0

    react全局注入mobx,代码实现通过Provider传入,内嵌router。在子组件中拿不到传入的store

    import React from 'react'
    import { observer,Provider,inject } from 'mobx-react'
    import Router from '@/routers'
    import AppStore from '@/stores/app'
    
    @observer
    class App extends React.Component{
        render(){
            return (
                <Provider store={AppStore}>
                    <Router/>
                </Provider>
            )
        }
    }
    
    export default App

    代码已上传到 github

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 霸气ヽ爵爷℡ 普通会员 1楼

      在使用react全局注入mobx时,可能会遇到以下问题:

      1. 类型不匹配:在使用全局注入时,需要将store的状态转换为函数,这样在组件中就可以直接使用store的方法。但是,这可能会导致store的状态类型与组件中声明的类型不匹配。例如,如果你在组件中声明了一个函数,但store的状态是对象,那么你可能需要使用类型转换工具,如TypeScript,来确保state和组件中的类型匹配。

      2. 无法修改store的状态:由于全局注入需要将store的状态转换为函数,因此在组件中修改store的状态可能会导致整个store被重新加载。为了避免这种情况,你需要确保你是在组件中修改的store的状态,而不是在全局store中。

      3. 无法使用全局store的方法:由于全局store的方法是公开的,因此你不能直接在全局store中使用它们。你需要在组件中使用这些方法,或者将它们包装成组件自己的方法。

      4. 无法使用全局store的事件处理器:由于全局store的事件处理器是公开的,因此你不能直接在全局store中使用它们。你需要在组件中使用这些事件处理器,或者将它们包装成组件自己的事件处理器。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部