찾다
웹 프론트엔드프런트엔드 Q&A반응에서 객체를 변경하는 방법

React에서 객체 속성을 변경하는 방법: 1. 상태에서 객체를 정의합니다. 2. obj 객체에 이름 및 연령 속성을 동적으로 추가하고 할당을 초기화합니다. 전체 개체 그게 다입니다.

반응에서 객체를 변경하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, 반응 버전 18.0.0, Dell G3 컴퓨터.

반응에서 개체를 변경하는 방법은 무엇입니까?

react setState는 객체 속성을 수정합니다

상태에 정의된 객체 속성을 변경해야 하므로, setState가 상태의 객체 속성에 직접 연산을 수행할 수 없는 것으로 확인되었습니다.

그럼 우리는 어떻게 해야 할까요? 조급해하지 말고 천천히 들어보세요. (네 헛소리는 전혀 듣고 싶지 않아요...)

먼저 상태에 객체를 정의합니다.

this.state = {
obj: {}
}

다음 단계는 동적으로 이름을 추가하는 것입니다. setState의 특성에 따라 obj 속성을 직접 변경할 수 있으므로 CoverObj라는 새 객체 객체를 만든 다음 이름, age 속성 및 이니셜을 추가할 수 있습니다. 이때 우리가 얻는 obj 객체는 CoverObj와 같습니다!

let coverObj = {};
coverObj['name'] = '小明',
coverObj['age'] = 20,
this.setState({
obj: coverObj
})

위의 방법에 따르면 실제로는 CoverObj가 obj에 직접 덮어쓰여집니다. obj 자체에 다른 속성이 있는 경우 다른 속성이 손실됩니다.

this.state = {
obj: {hobby: '游泳'}
}
let coverObj = {};
coverObj['name'] = '小明',
coverObj['age'] = 20,
this.setState({
obj: coverObj
})
// 打印出来的obj是没有hobby属性的

따라서 전체 개체를 변경하려면 Object.asset() 메서드를 사용해야 합니다.

let coverObj = {};
coverObj['name'] = '小明',
coverObj['age'] = 20,
let data2 = Object.assign(this.state.obj, coverObj)   // 1
// let data2 = Object.assign({},this.state.obj, coverObj)  // 2
this.setState({
obj: data2
})

참고 1 및 2: 위 두 메서드의 반환 값은 동일합니다. Object.sign 구문은 첫 번째 매개변수를 대상 객체로 취급하고 대상 객체를 기준으로 동작하므로 원래 대상 객체가 변경된다는 의미이므로 일반적으로 Object.sign을 사용할 때 대상이 다음으로 설정됩니다. 빈 객체는 새로운 객체를 반환하는 것과 같습니다.

다음으로 속성 이름의 값을 "Little Red"로 변경합니다. 전제는 변경해야 할 속성이 obj에 이미 존재하고 속성 이름이 변경된 값의 속성 이름과 일치한다는 것입니다. 개체의 속성:

let coverObj = {};
coverObj['name'] = '小明',
coverObj['age'] = 20,
let data2 = Object.assign({},this.state.obj,coverObj, {name: '小红'}) ;
this.setState({
obj: data2
})
// 打印的 obj: {hobby: '游泳', name: '小红', age: 20}

이제 개체 속성 값을 변경하려는 목적을 달성했습니다.

Object.Assign 관련:

Object.Assign() 메소드는 하나 이상의 소스 객체의 모든 열거 가능한 속성 값을 대상 객체에 할당하는 데 사용됩니다. 대상 객체를 반환합니다.

구문: ​​Object.sign(target, ...sources)

setState():

1에 대해 세 가지를 알아야 합니다. State를 직접 수정하지 말고 setState():

2를 사용하세요. 비동기일 수 있습니다

3. 상태 업데이트가 병합됩니다

추천 학습: "react 비디오 튜토리얼"

위 내용은 반응에서 객체를 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
react中canvas的用法是什么react中canvas的用法是什么Apr 27, 2022 pm 03:12 PM

在react中,canvas用于绘制各种图表、动画等;可以利用“react-konva”插件使用canvas,该插件是一个canvas第三方库,用于使用React操作canvas绘制复杂的画布图形,并提供了元素的事件机制和拖放操作的支持。

react中antd和dva是什么意思react中antd和dva是什么意思Apr 21, 2022 pm 03:25 PM

在react中,antd是基于Ant Design的React UI组件库,主要用于研发企业级中后台产品;dva是一个基于redux和“redux-saga”的数据流方案,内置了“react-router”和fetch,可理解为应用框架。

React是双向数据流吗React是双向数据流吗Apr 21, 2022 am 11:18 AM

React不是双向数据流,而是单向数据流。单向数据流是指数据在某个节点被改动后,只会影响一个方向上的其他节点;React中的表现就是数据主要通过props从父节点传递到子节点,若父级的某个props改变了,React会重渲染所有子节点。

react中为什么使用nodereact中为什么使用nodeApr 21, 2022 am 10:34 AM

因为在react中需要利用到webpack,而webpack依赖nodejs;webpack是一个模块打包机,在执行打包压缩的时候是依赖nodejs的,没有nodejs就不能使用webpack,所以react需要使用nodejs。

react中forceupdate的用法是什么react中forceupdate的用法是什么Apr 19, 2022 pm 12:03 PM

在react中,forceupdate()用于强制使组件跳过shouldComponentUpdate(),直接调用render(),可以触发组件的正常生命周期方法,语法为“component.forceUpdate(callback)”。

react是组件化开发吗react是组件化开发吗Apr 22, 2022 am 10:44 AM

react是组件化开发;组件化是React的核心思想,可以开发出一个个独立可复用的小组件来构造应用,任何的应用都会被抽象成一颗组件树,组件化开发也就是将一个页面拆分成一个个小的功能模块,每个功能完成自己这部分独立功能。

react与vue的虚拟dom有什么区别react与vue的虚拟dom有什么区别Apr 22, 2022 am 11:11 AM

react与vue的虚拟dom没有区别;react和vue的虚拟dom都是用js对象来模拟真实DOM,用虚拟DOM的diff来最小化更新真实DOM,可以减小不必要的性能损耗,按颗粒度分为不同的类型比较同层级dom节点,进行增、删、移的操作。

react和reactdom有什么区别react和reactdom有什么区别Apr 27, 2022 am 10:26 AM

react和reactdom的区别是:ReactDom只做和浏览器或DOM相关的操作,例如“ReactDOM.findDOMNode()”操作;而react负责除浏览器和DOM以外的相关操作,ReactDom是React的一部分。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기