検索

オブジェクト属性を変更するための React メソッド: 1. 状態でオブジェクトを定義する; 2. obj オブジェクトに name 属性と age 属性を動的に追加し、割り当てを初期化する; 3. "Object.assign()" メソッドを使用するオブジェクト全体を変更します。

Reactでオブジェクトを変更する方法

このチュートリアルの動作環境: Windows 10 システム、react18.0.0 バージョン、Dell G3 コンピューター。

react でオブジェクトを変更するにはどうすればよいですか?

react setState はオブジェクトのプロパティを変更します

state で定義されたオブジェクトのプロパティを変更する必要があるため、setState は state のオブジェクトを直接変更できないことがわかりました。プロパティが操作されます。

それではどうすればいいでしょうか?焦らず、ゆっくり聞いてください (あなたの戯言はまったく聞きたくないのですが...)

まず、次の状態のオブジェクトを定義します:

this.state = {
obj: {}
}

次のステップは、オブジェクト obj に名前と年齢属性を動的に追加し、割り当てを初期化することです。setState の特性に従って、obj 属性を直接変更できるため、新しいオブジェクト object を作成し、それに coverObj という名前を付けます。 coverObj に名前、年齢属性、初期値を追加すると、取得した 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.assign() メソッドを使用する必要があります。

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: 上記 2 つのメソッドの戻り値同じだ。 Object.assign の構文は、最初のパラメータをターゲット オブジェクトとして扱い、ターゲット オブジェクトに基づいて動作するため、つまり元のターゲット オブジェクトが変更されるため、一般に Object.assign を使用する場合、ターゲットは次のように設定されます。空のオブジェクトは、新しいオブジェクトを返すのと同じです。

次に、属性名の値を「Little Red」に変更します。変更する必要がある属性が既に obj に存在し、属性名が 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() メソッドは、1 つ以上のソース オブジェクトからターゲット オブジェクトにすべての列挙可能なプロパティの値を割り当てるために使用されます。ターゲットオブジェクトを返します。

構文: Object.assign(target, ...sources)

setState() について次の 3 つのことを知っておく必要があります:

1. State を直接変更しないでください。 setState():

2 を使用する必要があります。状態の更新は非同期である可能性があります

3。状態の更新はマージされます

推奨される学習: "react ビデオ チュートリアル

以上がReactでオブジェクトを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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ヘンタイを無料で生成します。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)