老师你好,我遇到一个报错被卡住了,需要您的帮助
来源:9-10 MobX 实践 SDK 登陆、下线状态管理

精慕门0241520
2022-04-28
我的tim.js代码
import { action, observable } from 'mobx-miniprogram'
import Tim from "../model/tim";
import TIM from "tim-wx-sdk-ws"
export const timStore=observable({
//字段
sdkReady:false,
//actions
login:action(function (){
this._runListener()
Tim.getInstance().login()
}),
_runListener(){
const sdk=Tim.getInstance().getSDK()
sdk.on(TIM.EVENT.SDK_READY,this._handleSDKReady,this)
sdk.on(TIM.EVENT.SDK_NOT_READY,this._handleSDKNotReady,this)
sdk.on(TIM.EVENT.KICKED_OUT,this._handleSDKNotReady,this)
},
_handleSDKReady(){
this.sdkReady=true
},
_handleSDKNotReady(){
this.sdkReady=false
},
})
我的conversation部分代码
import Tim from "../../model/tim";
import TIM from "tim-wx-sdk-ws";
import { timStore } from "../../store/tim";
import { createStoreBindings } from "mobx-miniprogram-bindings";
Page({
/**
* 页面的初始数据
*/
data: {},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.storeBindings = createStoreBindings(this, {
store: timStore,
fields: ["sdkReady"], //1.需要绑定的字段 2.这个sdkReady会绑定到data{}里去
action: ["login"], //需要绑定的操作和方法
});
this.login()
},
});
现在this.login部分一直编译通不过,如果注释掉这一段就没有问题,说明问题应该是出在this.login,请老师协助,感谢
写回答
1回答
-
createStoreBindings本身是个异步的操作,而且出于性能考虑,不会马上对当前页面或者组件做绑定。
你这里调用 this.login 实际还没有完成绑定。
022022-04-29
相似问题