簡體   English   中英

防暴js this.update奇怪的行為

[英]riot js this.update strange behavior

我有一個簡單的代碼

<test>
<ul>
  <li each={ books }> { title }</li>
</ul>

<button type="button" name="button" onclick={ loadBooks }>Load books</button>

<script>
  'use strict';

  this.books = [];
  let offset = 0;

  this.on('mount', () => {
    console.log('mounted');
  });

  this.on('update', () => {
    console.log('updated');
  });

  loadBooks ()  {
    fetch('/api/books?limit=10&offset='+offset)
    .then(response => response.json())
    .then(books => {
      offset+=10;
      this.books = books;
      // this.update();
    })
    .catch(err => console.log(err));
  }
</script>

在我的app.js中,我只是要求防暴,test.tag並執行riot.mount('#root', 'test'); 這是init屏幕,為什么要在安裝前觸發更新? 在此處輸入圖片說明 當我第一次單擊時,它會記錄觸發更新的日志,但視圖不會重新呈現 在此處輸入圖片說明 第二次點擊后,事件更新被觸發並重新呈現視圖 在此處輸入圖片說明 在此處輸入圖片說明

如果我取消注釋this.update(); 內部承諾中,事件更新將觸發兩次

更新:如果刪除this.books = books並編寫this.update({books}); 事件更新將觸發兩次,並且渲染將起作用,但是為什么要2次?

1) mountupdate :這在@next / 3.0.0中已修復,如下所示: https : //github.com/riot/riot/issues/1661

2)為什么要進行2x update :可能,一種來自標簽,另一種與子標簽有關。 這是在這里被問到的: https : //muut.com/i/riot-js/using : why-update-event-is-trigg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM