Blazor : 동적으로 생성 된 구성 요소를 제거하면 항상 목록에서 마지막 항목이 제거됩니다.

자렉 다니엘 락

Blazor WebAssembly로 간단한 핀업 보드를 구현하고 있습니다. X 버튼으로 카드를 제거 할 때 항상 제거 된 목록의 마지막 요소입니다.

@foreach (var item in _cards)
{
    <div class="card-title">
        <input type="text" id="@item.TitleElementId" value="@item.Title" />
        <button class="btn-remove" @onclick="() => RemoveCard(item)">X</button>
    </div>
}
<button class="btn-add" @onclick="AddNewCard">+</button>

@code {
    private List<Card> _cards = new List<Card>();

    private void AddNewCard()
    {
        _cards.Add(new Card());
    }

    private void RemoveCard(Card card)
    {
        _cards.Remove(card);
        // Also tried _cards.RemoveAll(i => i.TitleElementId == card.TitleElementId);
    }
}
자렉 다니엘 락

카드 내부의 일부 입력 값을 수정 한 후에 만 ​​발생한다는 것을 알았습니다.

값 바인딩에 문제가있는 것으로 밝혀졌습니다. @bind-""기본 html 대신 Blazor를 사용해야 value=""합니다. 불행히도 나는 이것이 왜 일어나는지 정확히 모릅니다.

그래서 대신

<input type="text" value="item.Title"/>

나는 변했다

<input type="text" @bind="item.Title"/>

모든 것이 예상대로 작동합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관