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

藏色散人
リリース: 2022-12-28 09:24:42
オリジナル
2531 人が閲覧しました

オブジェクト属性を変更するための 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート