{TIL} 0201 Object.assign()

2021. 2. 2. 07:06📔 TIL

1. react.js 에서 state.array의 상태를 변경해야할 때

 

리액트에서 originList라는 기존 배열에 새로운 원소를 push해야 하는 상황일 때,

아래 코드처럼 setState를 하면서 push를 하면 작동하지 않습니다.

this.setState({originList: originList.push(element)});

 

이럴 땐 tempList라는 임시 배열을 복사하여 element를 push한 후에,

setState를 통해 originList의 상태를 변경시켜야합니다.

let tempList = Object.assign([], originList);
tempList.push(element);

this.setState({originList: tempList});

 

Object.assign메서드는 target 객체에 resoureces 객체를 병합시킨 후에

target 객체를 리턴한다. 이때 sources 인자는 복수개도 가능합니다.

Object.assign(target, ...sources)

// ex
let newObject = Obeject.assign([1,2], [3,4]);

let newObject >>> [1, 2, 3, 4]

 

Object.assign() 메서드는 배열뿐만 아니라 key-value 구조 객체에서도 가능합니다

const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };

const returnedTarget = Object.assign(target, source);

console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }

console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }

 

'📔 TIL' 카테고리의 다른 글

{TIL} 210221  (0) 2021.02.21
{TIL} 0218  (0) 2021.02.18
{TIL} 0208  (0) 2021.02.08
{TIL} 0204  (0) 2021.02.04
ls / cd 커맨드 고급 사용법  (0) 2020.10.28