React에서 중첩 상태를 업데이트하는 방법: 단계별 가이드

Barbara Streisand
풀어 주다: 2024-11-03 06:24:02
원래의
810명이 탐색했습니다.

How to Update Nested State in React: A Step-by-Step Guide

React에서 중첩 상태 업데이트

React 애플리케이션의 컨텍스트에서 특정 속성을 업데이트해야 하는 상황에 직면할 수 있습니다. 깊게 중첩된 상태 개체입니다. 그러한 시나리오 중 하나는 사용자가 필드를 정의하고 다양한 세부 정보를 지정할 수 있는 양식을 구성하는 경우입니다.

시나리오:

양식 필드를 나타내는 초기 상태 개체가 있습니다. 필드는 키로 식별되며 name 및 populate_at와 같은 속성을 갖습니다. 사용자가 양식 컨트롤과 상호 작용할 때 이러한 속성을 수정할 수 있도록 하려고 합니다.

도전 과제:

상태에서 업데이트할 특정 개체를 대상으로 지정하는 것은 특히 어려울 수 있습니다. 중첩된 객체를 사용하는 경우.

해결책:

state.item[1].name을 업데이트하려면 다음 단계를 사용할 수 있습니다.

1. 상태 개체의 얕은 복사본 만들기:

<code class="javascript">let items = [...this.state.items];</code>
로그인 후 복사

2. 업데이트하려는 특정 항목의 얕은 복사본을 만듭니다.

<code class="javascript">let item = {...items[1]};</code>
로그인 후 복사

3. 복사본에서 원하는 속성을 바꿉니다:

<code class="javascript">item.name = 'newName';</code>
로그인 후 복사

4. 업데이트된 항목을 다시 상태 개체의 복사본에 넣습니다.

<code class="javascript">items[1] = item;</code>
로그인 후 복사

5. 상태를 수정된 복사본으로 설정합니다.

<code class="javascript">this.setState({items});</code>
로그인 후 복사

또는 2단계와 3단계를 한 줄로 결합할 수도 있습니다.

<code class="javascript">let item = {...items[1], name: 'newName'};</code>
로그인 후 복사

한 줄 솔루션 :

배열 확산 연산자를 사용하여 한 줄에서 전체 업데이트를 수행하는 방법은 다음과 같습니다.

<code class="javascript">this.setState(({items}) => ({
    items: [
        ...items.slice(0, 1),
        {
            ...items[1],
            name: 'newName',
        },
        ...items.slice(2)
    ]
}));</code>
로그인 후 복사

참고:

예제의 상태 개체는 일반 개체를 사용하여 구성되어 있다는 점에 유의하는 것이 중요합니다. 최신 React 애플리케이션에서는 상태 관리를 위해 useState 후크 또는 Redux를 사용하는 것이 좋습니다.

위 내용은 React에서 중첩 상태를 업데이트하는 방법: 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿