[react]setStateのプロパティ
Q.こんにちは?反応設定状態について質問です.以前の値がstateを更新する場合、State(curr=>{const newState={.curr};delete newState.notifications[id];return newState})を設定するには、戻り値に新しいstateを渡す必要があります.ただし、次の例に示すように、newState=delete~~を直ちに実行するとtrueが返され、setStateでreturn trueを使用しても非常にうまく動作します...そんな形でreturnに新しいstateを明記すべきだと思っていたのではないでしょうか.どう理解すればいいですか?
A.クラス構成部品のsetStateは、内部構造のオブジェクトです.assignで値を更新します.
関数のUpdaterがtrueを返すため、オブジェクトは既存の値に渡された新しい値を更新します.assign({}, preState, newState)
Object.assign({}, preState, true)
=>>presStateが返されます.
通常、データが削除されるのは、setState内部で内部の「更新データ関数」(newState)を呼び出すため、deleteキーワードを実行してpresStateが変更されたと判断できます.
setStateは、この値をインタラクティブに戻してリフレッシュすることを自作しているため、正常に動作するが、エッジ効果や不安定性が増加する可能性があるため、ステータス値の内部値を変更する場合、
削除時
filterまたはdeepcopyの使用を推奨します.
list.filter(v=>v.id!=id)/新しい配列を返す
this.setState(((curr)=>({count:curr.cont+1})このようにsetStateにコールバック関数を含める必要があります.ステータスを直接変更すると直感的になりますが、以前のステータス値を使用できない場合があります.(非同期処理の場合)計算を以前の値に追加します.
リフレッシュ時、データ構造:array
1.追加:[.this.state.array,{追加}]
修正
参照//習慣トラッカー例
data structure : object(hash table)
1.追加、変更:
const updated = { ...curr };
updated[card.id] = card;
return updated; (setStateで)
削除
const updated = { ...curr };
delete updated[card.id];
return updated;(setStateで)
** setState 바깥에서 정의하는 경우.
this._deleteNotification = (id) => {
const updated = { ...this.state.notifications }; delete updated[id];
this.setState({ notifications: updated });
};
Reference
この問題について([react]setStateのプロパティ), 我々は、より多くの情報をここで見つけました https://velog.io/@kenatman/React-setState의-속성テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol