Blazor 组件重新渲染

时间:2021-07-25 20:41:34

标签: blazor

   @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 并显示每个员工的详细信息(如果用户单击图标)但它只呈现一次,并显示相同的员工详细信息(这里是循环中的第一个员工)。

1 个答案:

答案 0 :(得分:-2)

在 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?

相关问题