javascript - 如何将数据发送到另一个页面?
问题描述
我有一个功能在我的输入文本不为空时getData()
启动,submit
索引.svelte
<script>
let inputValue = '';
let responseData;
async function getData(){
let url = new URL('url');
url.search = new URLSearchParams({
url: inputValue
})
const response = await fetch(url);
const repositoryData = await response.json();
responseData = repositoryData;
goto()
};
</script>
如何将此函数返回的数据发送到另一个页面(Home.svelte
)以在简单的仪表板上显示此数据?
谢谢你的帮助
解决方案
把它放在商店里。
_stores.js
import { writable } from 'svelte/store'
// have a store
export const searchResult = writable(null)
Index.svelte
<script>
import { searchResult } from './_stores.js';
let inputValue = '';
let responseData;
async function getData(){
let url = new URL('url');
url.search = new URLSearchParams({
url: inputValue
})
const response = await fetch(url);
const repositoryData = await response.json();
// equivalent to: searchResult.set(repositoryData)
$searchResult = repositoryData; // <================== set the store
goto()
};
</script>
Home.svelte
<script>
import { searchResult } from './_stores.js'
</script>
<!-- read the store -->
{#if $searchResult}
{#each $seartResult as $result}
...
{/each}
{:else}
<p>Enter your search</p>
{/if}
您也可以考虑将获取逻辑也转移到存储中,方法是创建searchQuery
一个可写存储和searchResult
一个派生存储,每次searchQuery
更改时都会调用 API。
推荐阅读
- typescript - 如何修复项目库中损坏的类型签名?
- python - 按地区分组国家
- mysql - 以分钟为单位的时差
- node.js - 如何使用 axios npm 包进行身份验证
- python - 为什么 pynput 不检测数字键盘按下?
- c++ - 无法弄清楚 C++ lamda 表达式的语法作为方法的参数
- android - 在 uncaughtException 上启动新活动
- ios - 自定义 UISlider 子视图框架从主视图偏移
- javascript - 我想为每个组件复制但分别维护状态。我是否需要分别为每个组件创建每个函数?
- python - Python/Tweepy 转发推特账户