엄범

 

 

setState 다양한 사용법

```js

// 리스트에 추가 삭제

e.currentTarget.checked === true
  ? this.setState(state => ({checkedItems: [...state.checkedItems, divisionRateItem]}))
  : this.setState(state => ({checkedItems: state.checkedItems.filter(x => x !== divisionRateItem)}));

 

// 리스트 안의 원소의 멤버 변수 변경

this.setState(prevState => {
  const state = Object.assign({}, prevState);
  state.divisionRates[i].isChecked = !state.divisionRates[i].isChecked;
  return state;
});

 

// 이건 별로 좋은 방법은 아닌 것 같다. 전체를 리턴 받아야 해서 filter를 못쓰고 map에 다 때려 넣었는데

// 너무 지저분해지고 가독성도 좋지 않다

this.setState(state => ({divisionRates:
        state.divisionRates
            .map(divisionRate =>
                divisionRate === selectedItem 
                    ? {...divisionRate, isChecked: !divisionRate.isChecked} 
                    : divisionRate)}));

 

this.setState(state => ({
    divisionRates: state.divisionRates
        .map(item => Object.assign(item, {isChecked: !!checked}))
}));

```

 

profile에 따라 다른 상수 불러오기

```js

// Common.js

export default {

    ...require(`../profiles/${process.env.REACT_APP_PROFILES}`)

}

```

```js

// local.js

export const a = 'constant'

```

빌드 시에 profile을 다음과 같이 넣어주면 해당 프로파일.js 파일의 상수들만 불러올 수 있다.

```js

cross-env REACT_APP_PROFILES=local react-scripts build

```

사용할 때는 Common을 import해서 사용.