2017-03-02 44 views
0

TL; DR:在线REPL(苗条1.9.1)有效,但本地已损坏。问题:我在做什么错,本地?苗条REPL和本地输出之间的区别

下面的代码工作在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上的Svelte 1.9.1薄荷18.1,64位),是完全相同的文件生成以下输出:

1,2,2

01136 =未定义

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

另外一个神秘的东西

如果我删除这些行:

 {{#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

这是一个非常疯狂的错误 - 我无法在本地获得相同的结果,你能够创建一个可共享的repro? –

+0

@RichHarris当然,只需一分钟。我不知道(与任何科技)是否是我或技术。 :) – Kev

+0

@RichHarris https://github.com/IBwWG/cheatermind/tree/svelte-start – Kev

回答

0

更新到苗条1.9.1 本地yarn upgrade svelte