【发布时间】:2019-08-02 15:36:55
【问题描述】:
我正在使用 Ionic 4 创建一个聊天页面,并试图让它自动滚动到页面底部。我这样做了,但它不起作用:
import { IonContent } from "@ionic/angular";
export class ChatroomPage implements OnInit {
messageForm: FormGroup;
messages: any[];
messenger: any;
@ViewChild(IonContent) content: IonContent;
constructor(
private navExtras: NavExtrasService,
private api: RestApiService,
private httpNative: HTTP
) { }
ngOnInit() {
this.content.scrollToBottom(300);
}
}
在html文件中:
<ion-header>
<ion-toolbar color="primary">
<ion-title>Chatroom</ion-title>
</ion-toolbar>
</ion-header>
<!-- display previous message -->
<ion-content padding id="content">
<ion-list>
<ion-item *ngFor="let message of messages">
{{ message.message }}
</ion-item>
</ion-list>
</ion-content>
<!-- chat message input -->
<ion-footer>
<form [formGroup]="messageForm" (submit)="sendMessage()" (keydown.enter)="sendMessage()">
<ion-input formControlName="message" type="text" placeholder="Enter your message"></ion-input>
<ion-button type="submit">Send</ion-button>
</form>
</ion-footer>
显示的错误是:
ng:///ChatroomPageModule/ChatroomPage_Host.ngfactory.js:5 ERROR TypeError: Cannot read property 'scrollToBottom' of undefined
请赐教我做错了什么。我发现的大多数教程都使用 Ionic 3,他们使用来自ionic-angular 的Content 而不是来自@ionic/angular 的IonContent。我似乎无法在 Ionic 4 中使用 Content,因为它没有 scrollToBottom 方法。
【问题讨论】:
-
嘿!您可以在 ionViewDidEnter() 中调用滚动函数,而不是在 ngOnInit() 方法上调用。
标签: angular typescript ionic-framework ionic4