【问题标题】:Blazor Component RerenderBlazor 组件渲染
【发布时间】:2021-10-01 22:48:20
【问题描述】:
   @foreach ((Employee, int) result in searchResults)
   {
        <tr>
            <th scope="row">@result.Item1.Forename, @result.Item1.Surname
                <i class="bi bi-info-circle" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight"></i>
                <div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
                <div class="offcanvas-header">
                    <h5 id="offcanvasRightLabel">@result.Item1.Forename, @result.Item1.Surname</h5>
                    <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
                </div>
                <div class="offcanvas-body">
                    <Profile4Search Id = "@result.Item1.Id"/>
                </div>
                </div>
            </th>

我想将offcanvas 用于员工的信息,但Profile4Search 组件不会重新呈现并且始终显示相同的信息。如何在 foreach 循环中重新渲染组件?

我想,组件 ProfileSearch 从 Parameter 接收 Id 并显示每个员工的详细信息(如果用户单击图标)但它只呈现一次,并显示相同的员工详细信息(这里是循环中的第一个员工)。

【问题讨论】:

  • “不重新渲染并始终显示” 是矛盾的,请澄清。
  • [礼貌] 就像@HenkHolterman 我不知道我在看什么。您需要将其简化为一些展示您的问题的结构化代码。没有上下文的代码块很难理解。
  • 编辑缩短但没有澄清。尝试添加预期结果与实际结果。
  • 另外,foreach() 循环不会关闭。这可能很重要。
  • 我想,组件 ProfileSearch 从参数接收 Id 并显示每个员工的详细信息(如果用户单击图标)但它只呈现一次,并显示相同员工的详细信息(这里是循环中的第一个员工).....

标签: blazor


【解决方案1】:

在 C# 中使用 for-each 循环时,通常需要将循环变量分配给临时变量。

@foreach ((Employee, int) result in searchResults)
   {
       var tmp = result.Item1;
        <tr>
            <th scope="row">@tmp.Forename, @tmp.Surname
  

不容易确定这是这里的原因,因为您的问题不太清楚是/未呈现什么。 更多:Why is a temporary variable required in foreach to be included in lambda expression?

【讨论】:

  • 不,foreach() 不需要此解决方法。
  • it's often necessary to assign the loop variable 不,从来没有必要。如果您需要访问嵌套对象和属性,这可能很方便,但从来没有必要。您链接到的内容描述了 lambdas 的问题,而不是 foreach
猜你喜欢
  • 1970-01-01
  • 2022-01-16
  • 2020-03-17
  • 2021-06-28
  • 1970-01-01
  • 2020-08-12
  • 2019-11-12
  • 1970-01-01
  • 2021-07-17
相关资源
最近更新 更多