Ionic4 scrollToBottom没有效果
我跟随尝试滚动,但没有效果 我还没有使用可变的可观察部分。并且基于文章,在某些情况下,应该只从滚动中跳过最后一条消息。但在我的情况下,滚动根本不会发生。我已经检查了控制台,那里也没有错误 我的代码如下所示:Ionic4 scrollToBottom没有效果,scroll,ionic4,Scroll,Ionic4,我跟随尝试滚动,但没有效果 我还没有使用可变的可观察部分。并且基于文章,在某些情况下,应该只从滚动中跳过最后一条消息。但在我的情况下,滚动根本不会发生。我已经检查了控制台,那里也没有错误 我的代码如下所示: <ion-content fullscreen> <div class="full-screen-bg"> <div style="border-top: 1px solid #5b63f8"> <ion-segmen
<ion-content fullscreen>
<div class="full-screen-bg">
<div style="border-top: 1px solid #5b63f8">
<ion-segment (ionChange)="segmentChanged($event)" mode="md" style="padding-top:15px;padding-bottom: 0px" value="feed">
<ion-segment-button value="feed">
FEED
</ion-segment-button>
<ion-segment-button value="explore">
EXPLORE
</ion-segment-button>
</ion-segment>
<div [ngSwitch]="eventTab">
<div *ngSwitchCase="'feed'" >
<ion-list *ngIf="messages" lines="full" style="background:transparent" #content>
<ion-item style="padding-top:10px;" *ngFor="let msg of messages | async;let last = last ">
<ion-row style="width:100%;">
<ion-col size="3">
<ion-row>
<ion-col class="sg-reg-text">{{formatName(msg.name)}}</ion-col>
</ion-row>
<ion-row>
<ion-col style="padding:0;padding-left:8px" class="sg-tiny-text"><ion-icon name="time" color="light"></ion-icon> {{timeSince(msg.date)}}</ion-col>
</ion-row>
</ion-col>
<ion-col style="border-bottom: 1px solid #7e7c8d;padding-bottom: 10px">
<ion-row>
<ion-col class="sg-reg-text">{{msg.message}}</ion-col>
</ion-row>
</ion-col>
</ion-row>
</ion-item>
</ion-list>
</div>
<div *ngSwitchCase="'explore'" style="padding:40px">
</ion-content>
喂
探索
{{formatName(msg.name)}
{{timeSince(msg.date)}
{{msg.message}
.ts文件
@ViewChild(Content) contentArea: Content;
messages:Observable<Post[]>
send(){
console.log("posting:" + this.message)
if(this.message == undefined || this.message.trim() == '')
return
var post = new Post(this.core.name, this.message, this.core.uid, (new Date()).getTime())
this.sgSvc.postMessage(post).then(
(rsp) => {
console.log('success')
this.message = ''
this.scrollToBottom();
}
)
}
scrollToBottom() {
setTimeout(() => {
if (this.contentArea.scrollToBottom) {
this.contentArea.scrollToBottom();
}
}, 400);
}
@ViewChild(Content)contentArea:Content;
信息:可观察
发送(){
console.log(“posting:+this.message”)
if(this.message==未定义| | this.message.trim()==“”)
返回
var post=new post(this.core.name,this.message,this.core.uid,(new Date()).getTime())
这个.sgSvc.postMessage(post)(
(可吸入悬浮粒子)=>{
console.log('success')
this.message=“”
这个.scrollToBottom();
}
)
}
scrollToBottom(){
设置超时(()=>{
if(this.contentArea.scrollToBottom){
this.contentArea.scrollToBottom();
}
}, 400);
}
而不是这个.contentArea.scrollToBottom()代码>
使用window.scrollTo(0,document.body.scrollHeight)代码>而不是这个.contentArea.scrollToBottom()代码>
使用window.scrollTo(0,document.body.scrollHeight)代码>我可以用这个
this.contentArea.el.scrollToBottom();
我希望它有帮助我能用这个解决它
this.contentArea.el.scrollToBottom();
我希望它有帮助您的大部分代码都很好。你只需要做3个改变,这应该对你有用,在Ionic 4中。我尝试了你的代码使用离子4和它的工作为我。以下是变化:
更改1(TS文件):
从'@ionic/angular'导入{IonContent}代码>
更改2(TS文件):
替换
@ViewChild(Content)contentArea:Content代码>
与:
@ViewChild(IonContent)contentArea:IonContent代码>
更改3(HTML文件):
替换:
与:
您的大部分代码都很好。你只需要做3个改变,这应该对你有用,在Ionic 4中。我尝试了你的代码使用离子4和它的工作为我。以下是变化:
更改1(TS文件):
从'@ionic/angular'导入{IonContent}代码>
更改2(TS文件):
替换
@ViewChild(Content)contentArea:Content代码>
与:
@ViewChild(IonContent)contentArea:IonContent代码>
更改3(HTML文件):
替换:
与:
关于这个问题有什么建议吗?关于这个问题有什么建议吗?这里,这是唯一对我有效的解决方案(通过“el”)这里,这是唯一对我有效的解决方案(通过“el”)