Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 是否可以在Svelte的事件处理程序中访问组件道具?_Events_Svelte_Svelte 3 - Fatal编程技术网

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
的组件,它有一个prop
name
。这是否消除了您的困惑?即
NameHandler.svelte
导出let name您在问题中编写的组件无效,名称尚未定义。它只是一个虚构的组件。