来自官网的理解教程

Understanding tutorial from the official website

我是 Mithril 的新手,正在尝试了解官方网站上的教程。我稍微修改了示例。这是没有 m.request 的版本。下面的代码片段不会在页面上呈现任何内容。就好像变化检测(?)在异步操作后没有被触发。你会如何让它发挥作用?谢谢!

const User = {
    list: [],
    loadList(){
      //new code starts
      return new Promise((resolve, reject) => {
        setTimeout(function(){
          User.list.push({name: 'Foo'}, {name: 'Bar'});
          resolve();
        }, 1000);
      })
      //new code ends

      /* original code
       return m.request({
         method: "GET",
         url: "https://rem-rest-api.herokuapp.com/api/users",
         withCredentials: true,
       })
      .then(function(result) {
         User.list = result.data
       })
      */
    }
}
const UserList = {
  oninit: User.loadList,
  view(){
    return m(".user-list", User.list.map((user) => {
     return m(".user-list-item", user.name)
   }))
  }
}

m.mount(document.body, UserList)
<script src="https://cdnjs.cloudflare.com/ajax/libs/mithril/1.1.1/mithril.min.js"></script>

setTimeout后未触发自动重绘功能。必须使用 m.redraw() 手动触发它。 可以在 docs

中找到更多信息