问题描述
苗条 3.34.0,工兵 0.28.10。
文件位于 /src/routes/data/index.svelte
。网址格式为 http://localhost:3000/data/?day=40
或 http://localhost:3000/data/
(默认为当天)。该页面从远程 url 获取 JSON 数据并显示它。
<script context="module">
import { buildDataUrl,formatDate } from '../../helpers';
import moment from 'moment';
export async function preload(page) {
const query = page.query;
let day = Number.parseInt(query.day);
if (Number.isNaN(day)) day = moment().dayOfYear();
console.log(`preload fired,day: ${day},${JSON.stringify(query)}`);
const get = await this.fetch(buildDataUrl(day),{
当我在开发模式下使用 sapper dev
在本地运行它时,url 查询参数得到尊重并正确使用。当查询字符串更改时,页面将重新呈现,无论是通过编辑它还是点击页面上的链接。
当我使用 npx sapper export && npx serve __sapper__/export
(参见文档 here)在本地运行它并转到 http://localhost:5000/data/?day=40
时,无论查询字符串中的内容如何,日期值始终默认为当天。即使使用 ?day=a
也不会改变行为——这应该会导致错误。
解决方法
我试图复制它,但是,即使导出后它也能在我的机器上按预期工作。
并且由于您有此行 if (Number.isNaN(day)) day = moment().dayOfYear();
,即使您将 NaN
传递给查询,它也会替换为当前日期,所以我不明白为什么它会导致错误>