<input type="text" readonly />
이더라도 IOS12에서는 키패드가 없는 하단바가 생성이된다.
이를 막기위해선 onfocus="this.blur();"
를 추가하여 focusing 되는 즉시 blur가 되도록 하자. (꼼수)
master에 feature브랜치를 merge할 때 conflict이 날 수 있다.
이떄 해결할 수 있는 방법이다.
반응형으로 생성된 객체를 함부로 교체하지말자.
한번 꼬이기 시작하면 어디서 반응형이 동작안하는지 디버깅하기가 어렵다.
나의 경우 state의 data 프로퍼티를 일반 api response로 교체해버리면서 반응형이 깨져버렸다.
const useCatalogState = defineStore('catalog', {
state: (): ICatalogState => ({
data: {
catalog: {},
prodList: null,
attributeInfo: {
generalAttributeList: [],
groupAttributeList: [],
},
lowestList: [],
},
params: {
freeShip: false,
}
}),
getters: {},
actions: {
async fetchData(params: IGetCatalogProdInfoApiParams) {
// < state.data의 반응형이 깨져버린(혹은 벗겨진) 코드 >
const { data }: = await getCatalogProdInfo(params);
// Proxy 였던 this.data가 일반 Object로 바뀐다.
// data는 컴포넌트단에서 변경하더라도 반응형으로 동작하지 않게된다.
this.data = data;
// < state.data의 반응형이 유지되는 코드 >
const {
data: { catalog, prodLists, attributeInfo, lowestList },
} = await getCatalogProdInfo(params);
this.data.catalog = catalog ?? {};
this.data.prodList = prodLists?.prodList ?? null;
this.data.attributeInfo = attributeInfo;
this.data.lowestList = lowestList;
},
},
});