gpt4 book ai didi

blazor 变量参数传递给 onclick 函数

转载 作者:行者123 更新时间:2023-12-04 12:11:44 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Calling function from generated button in Blazor

(1 个回答)


7 个月前关闭。




我想将 int i 传递给每个列表项的按钮 onclick 函数。我预计“clickItem”函数将收到 0..2 对应的列表项。但结果是它总是接收 3 作为参数。似乎 clickItem(i) 中的变量 i 在 for 循环的渲染时没有被评估。我曾尝试将其更改为“clickItem(@i)”,但它仍然相同。我该怎么办? (我使用 blazor 服务器端,.net core 3 preview 5)

        @for (int i = 0; i < 3; i++)
{
<li> item @i <button onclick=@(() => clickItem(i))>Click</button> </li>
}

enter image description here

最佳答案

这是一个经典,但在 Blazor 的上下文中略有新意。
您需要进行复制,否则 lambda 会“捕获”循环变量。捕获副本是可以的。

@for (int i = 0; i < 3; i++)
{
int copy = i;
<li> item @i <button onclick=@(() => clickItem(copy))>Click</button> </li>
}
请注意,这是 for() 的问题。循环但不是 foreach() .

关于blazor 变量参数传递给 onclick 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56425558/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com