Events 是否可以在Svelte的事件处理程序中访问组件道具?
假设我有一个打开了Events 是否可以在Svelte的事件处理程序中访问组件道具?,events,svelte,svelte-3,Events,Svelte,Svelte 3,假设我有一个打开了的组件:单击,还有一个名为name的道具名为NameHandler。现在,假设我想在打开时更改名称:单击,而不更改名称处理程序,也不将名称绑定到另一个变量 比如说: <script> const nameHandlerClick = (/*usually empty since I don't use event*/) => { component.name = randomName(); //replace component.name with a
的组件:单击,还有一个名为name
的道具名为NameHandler
。现在,假设我想在打开时更改名称
:单击
,而不更改名称处理程序
,也不将名称
绑定到另一个变量
比如说:
<script>
const nameHandlerClick = (/*usually empty since I don't use event*/) => {
component.name = randomName(); //replace component.name with a way to access name prop in NameHandler.
}
</script>
<NameHandler {name} on:click={nameHandlerClick}/>
const nameHandlerClick=(/*通常为空,因为我不使用event*/)=>{
component.name=randomName();//用访问NameHandler中的name prop的方法替换component.name。
}
我假设NameHandler
是这样,我们可以在上面附加一个:单击
如果不想将name
存储在另一个变量中,则可以访问组件并使用更新道具
从“./NameHandler.svelte”导入NameHandler;
让comp;
常量handleClick=()=>{
comp.$set({name:'updated'});
}
然而,这并不是一种非常简单的方式——客户端API是由外部用户使用的,而不是从内部使用。更惯用的方法是将name
声明为它自己的变量,并直接设置它
从“./NameHandler.svelte”导入NameHandler;
让name='initial';
常量handleClick=()=>{
名称='更新';
}
您的组件无效,未定义名称。“名为NameHandler的prop”是什么意思?我指的是名为NameHandler
的组件,它有一个propname
。这是否消除了您的困惑?即NameHandler.svelte
与导出let name代码>您在问题中编写的组件无效,名称尚未定义。它只是一个虚构的组件。