let [product,setProduct] = {
a: [ {...},{...},{...} ]
b: [ {...},{...},{...} ]
}
원래 이런 자료에서
product.a[0].price 이런식으로 꺼내서 잘썻었습니다. 그런데 a하나만 꺼내서 오름차순 정렬하고 다시 집어넣으려니깐 안되는데 어캐해요 ? 3시간째
하고있는데 안되네요 ㅠㅠ
제가 한 방법은
let copy = [...product.a];
let result = copy.sort( funthion(b,a){
return a.price-b.price
});
해서 result 안에 오름차순 한거까지는 담겨잇습니다.
그런데 setProduct( ) 안에 어떻게 넣어햐할지 모르겟어요 ㅠㅠㅠ 제발 고수님들 알려주세요
우리 불변성을 보장하기로 해요 - dc App
불변성 땜에 기존꺼에 덮어치는식으로 햇는데 안되요 ㅠㅠ
딥?클론? x/y problem 느낌이 몰씬 나니 재연가능한 래포를 가져와주시면 이다음부턴 그뒤에 점 달아보져 - dc App
let [product, setProduct] = useState([]); let copy = [...product.a]; let result = copy.sort((b,a)=>{ return a.price-b.price }) setProduct( ??? )
위에 사진 올렷습니다!
혹시 setProduct에 들어가는값의 객체 참조가 같나요? - dc App
그러면 x === y 에서 걸려서 effect가 안돌거에요 - dc App
근데 그게아니라면 보이는걸로는 잘 짐작이 안가네요 - dc App
풀엇어여!!!!!!!! setProduct({a: result ,b:product.b}) 요렇게 기존형태 그대로 넣어주니깐 풀렷어요 고민해주셔서 감사합니다!!!! 좋은하루되세여ㅛ
아 오브젝트셧구나 쌩 배열이 아니라 앗넹넹~ 좋은하루되십숑~ - dc App
나도 늒네긴 한데 setProduct( ...product, a: result ) 로 안되나? - dc App
중괄호 빠졋다 ({ ...product, a: result }) 요로케... - dc App
감사합니다!!!!!!!!!!!!!!!!!! 해결햇습니다 ㅎㅎㅎㅎ 두개 합쳐서 내는게 맞내여 setProduct({a: result ,b:product.b}) 이렇게 풀렷어여!