Svelte REPL和本地输出之间的区别

时间:2017-03-02 14:45:27

标签: javascript node.js svelte

TL; DR:在线REPL(Svelte 1.9.1)有效,但本地已损坏。问题:我在本地做错了什么?

以下代码适用于this REPL

  {{grades}}<br>
  {{#each guesses as guess, i}}
      {{#each guess as slot}}
        {{slot}}
      {{/each}}
        =
      {{ grades[i] }}
  {{/each}}


<script>
  export default {
    data () {
      return {
        guesses: [
          [0, 1, 1, 3, 6],
        ],
        grades: [
          [1, 2, 2],
        ],
      }
    },
  };
</script>

即,它产生输出:

  

1,2,2-

     

01136 = 1,2,2

但是,本地(Linux Mint 18.1上的Svelte 1.9.1,64位),完全相同的文件会产生此输出:

  

1,2,2-

     

01136 =未定义

正如您所看到的,它在grades循环中访问grades[i]就好了,但不是#each。控制台报告没有错误。

另一个神秘的事情

如果删除这些行:

      {{#each guess as slot}}
        {{slot}}
      {{/each}}

...然后本地渲染变为:

  

1,2,2-

     

= 1,2,2

那么#each怎么阻止grades[i]突然变得不明确......但仅限于本地?

其他环境信息

通过以下方式提取本地版本:

Game.js

import Game from '../components/Game.html';

const GameComponent = new Game({
  target: document.querySelector('main'),
});

export default GameComponent;

main.js

/* eslint-disable no-unused-vars */

import Game from './js/Game';

index.html

<!doctype html>
<html>
<head>
  <title>CheaterMind</title>
  <link rel="stylesheet" type="text/css" href="colours.css">
</head>
<body>
  <main></main>
  <script src='../dist/main.js' charset='utf-8'></script>
</body>
</html>

设置是https://github.com/charpeni/svelte-example的副本,我使用npm run build:watch

1 个答案:

答案 0 :(得分:0)

使用yarn upgrade svelte更新为使用menuImage.SetBinding (ImageCell.ImageSourceProperty, "image"); 本地修改1.9.1