svelte - Svelte 不更新子组件
问题描述
我有一个带有子组件的应用程序。当父级中的变量发生更改时,子级组件不会更新。该代码在 Svelte "REPL" 中运行良好。我想知道是否有人有任何想法来帮助调试它。
使用 Svelte 版本 3.29.0
项目结构:App.svelte
<script>
import Nested from "./Nested.svelte"
const mouse_move = v => () => {
selected_index = v
console.log(selected_index)
}
let selected_index = 1;
</script>
{selected_index}
<Nested name={selected_index} mouseenter={mouse_move("here")} mouseleave={mouse_move("gone")}/>
嵌套的.svelte
<script>
export let name = "Ready";
export let mouseenter = () => {};
export let mouseleave = () => {};
</script>
<h1 on:mouseenter={mouseenter} on:mouseleave={mouseleave}>Hello {name}!</h1>
将鼠标悬停在h1
文本上会导致selected_index
从1
变为here
。在我的本地主机版本中,该元素由渲染,{selected_index}
但Nested
元素保持不变,但在 Svelte“REPL”中变化良好。
任何关于什么/如何调试的想法将不胜感激。
** 编辑 **
当我为生产而构建它并在本地服务时,它运行良好。尝试了以下方法,但都没有奏效:
- 删除所有 node_modules 并重新安装
- 隐身运行
- 在不同的浏览器中运行
解决方案
绑定名字
<Nested bind:name={selected_index} mouseenter={mouse_move("here")} mouseleave={mouse_move("gone")}/>
推荐阅读
- iis - GCP,尽管存在转发规则,但 IIS 上没有外部 IP
- python - 如何使用 python jenkinsapi 模块解析和更新 jenkins 作业 config.xml
- python - 用于多组比较的 Python 中的 T 检验
- php - 扩展类时找不到错误类
- javascript - 尝试在 nodejs 中重新创建有效的 java 加密方法
- javascript - Nodejs异步函数返回
- laravel - Laravel - 如何使用按钮自定义省略号
- hibernate - WildFly 18 将 Hibernate 更新到 5.4.12.Final
- php - 如何构建这个 Laravel Eloquent 查询
- c# - c#中的for循环用于控件ID以读取文本框的文本