我正在try 创建一个可重用的函数,该函数使用当前URL中的数据来生成一些输出.但是,当我执行以下操作时:

// reusableScript.js
import { page } from '$app/stores';

export default () => {
  return page.url 
}
<!-- Component.svelte -->
<script>
  import { script } from '$lib';
  const url = script()
</script>

<div>
  {url}
</div>

url始终是未定义的.我的理解有误吗?

推荐答案

这是一个store,要读它,你必须读到subscribe或使用get utility function,但这会失go react 性,所以我不建议这样做,除非你只想读取值once.

否则,导出一个只获得URL的新的derivedstore ,然后通过$表示法使用它.例如.

import { page } from '$app/stores';
import { derived } from 'svelte/store';

export const currentUrl = derived(page, $page => $page.url);
<script>
  import { currentUrl } from '$lib';
</script>

<div>
  {$currentUrl}
</div>

如果你需要一个函数来处理需要参数的URL,你可以创建一个派生的存储来返回一个函数,例如.

import { page } from '$app/stores';
import { derived } from 'svelte/store';

export const processUrl = derived(
  page,
  $page => suffix => $page.url + ' ' + suffix,
);
<script>
  import { processUrl } from '$lib';
</script>

<div>
  {$processUrl('!')}
</div>

Javascript相关问答推荐

如何通过继承contentitable属性的元素捕捉keydown事件?

Next.js Next/Image图像隐含性有任何类型-如何修复?

提交表格后保留Web表格中的收件箱值?

react/redux中的formData在expressjs中返回未定义的req.params.id

Cookie中未保存会话数据

如何使用JavaScript将文本插入空div

jQuery s data()[storage object]在vanilla JavaScript中?'

使用LocaleCompare()进行排序时,首先使用大写字母

JS—删除对象数组中对象的子对象

VSCode中出现随机行

如何使用<;Link>;执行与JS Reaction中的";window.Location=/GameOverDied;";类似的操作?

在JS/TS中将复杂图形转换为数组或其他数据 struct

JavaScript将字符串数字转换为整数

MongoDB通过数字或字符串过滤列表

在单击按钮时生成多个表单时的处理状态

无法使用Redux异步函数读取未定义的useEffect钩子的属性';map';

rxjs在每次迭代后更新数组的可观察值

如何将对象推送到firestore数组?

如何调整下拉内容,使其不与其他元素重叠?

在此div中添加一个类,并在一段时间后在Java脚本中将其删除