svelte - 从组件和插槽中的组件传递 Prop

标签 svelte

响应式 NavBar 组件使用 NavLink 组件如下:

<script>
  import NavBar from './nav/NavBar.svelte';
  import NavLink from './nav/NavLink.svelte';
  let barsMenu = false;
</script>

<NavBar logo="LOGO" bind:barsMenu={barsMenu}>
  <NavLink text="About" barsMenu={barsMenu}></NavLink>
  <NavLink text="Contact" barsMenu={barsMenu}></NavLink>
</NavBar>

NavLink 组件需要 barsMenu 属性。 NavLink 组件是 NavBar 插槽的一部分,如下所示:

<script>
  export let logo = '';
  export let barsMenu = false;
</script>

<div class="navbar" class:responsive="{barsMenu}">
  <a class="logo" href="javascript:;">{logo}</a>
  <slot></slot>
  <a class="bars" href="...." on:click="{() => barsMenu = !barsMenu}">
    <i class="fa fa-bars"></i>
  </a>
</div>  

NavBar 组件是否可以将 barsMenu 属性直接向下传递给 NavLink 组件?

最佳答案

slot 标签中传递 prop:

<slot barsMenu={ barsMenu }></slot>

然后在父标签中使用let:指令:

<NavBar logo="LOGO" let:barsMenu={ barsMenu }>

See the docs

关于svelte - 从组件和插槽中的组件传递 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58148126/

相关文章:

google-cloud-firestore - 使用 Sapper 设置 Firestore

javascript - 如何在 Svelte 中正确包装第三方组件

visual-studio-code - Visual Studio Code 无法识别 Svelte 中的 SCSS

javascript - 为什么双向绑定(bind)组件在 Svelte 中更新两次?

jquery - 如何在 Svelte 中使用 jQuery

svelte - 对属性更改应用 Svelte Transition

splitter - 细长的分离器示例

javascript - 数组内对象的属性更改的 react 性

javascript - 如何上传 Sveltekit 多个文件

javascript - 如何在 svelte 项目中配置 sass 和 ESLint?