Your system information:
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.4
Ionic CLI Version: 2.1.14
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.47
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 7
Node Version: v6.9.2
Xcode version: Not installed
我在推送到对话视图后得到此错误。随着socketIO im连接到我的消息服务器,它正在向客户端推送新消息。在此之后我想自动向下滚动,这样就会显示最新的消息。
如果我第一次打开转换窗口我很好用它并且一切正常,但是第二次(按下并重新登陆页面)我收到了这个错误。
谢谢:)
编辑:错误消息:
无法读取null的属性scrollToBottom
connect() {
this.socket.on("connect", () => {
console.log("connected");
console.log("Listening on: "+"message_"+this.secretid);
this.socket.emit('message', { type: "token", token: this.secretid });
this.socket.on("message_"+this.secretid, (msg) => {
let msg_data = JSON.parse(msg);
msg_data.payload.writer_id = msg_data.payload.user;
console.log(msg_data);
this.chat.push(msg_data.payload);
this.content.scrollToBottom(); <<--Error
});
});
}
在ionViewDidLoad() {}
中调用了连接,因此应初始化this.content
。
我使用离子2
编辑2:仅在Ionic Lab中出现此错误
答案 0 :(得分:1)
ionviewdidload
生命周期钩子被调用用于页面初始化并被调用一次。 Docs here
视图可能尚未加载。
从给定的代码中,我看到的解决方案是将scrollTobottom调用放在ionviewWillEnter
或尝试Angular的ngOnChanges
Here,您可以在其中检查聊天列表中的更改。
答案 1 :(得分:0)
试试这个:
<span id="ruler" style="visibility: hidden; white-space: nowrap;"></span>
答案 2 :(得分:0)
您需要将this.content.scrollToBottom(0);在有条件的情况下。像这样:
if(this.content._scroll) {
this.content.scrollToBottom(0);
}
请尝试一次。