10 글 보임 - 1 에서 10 까지 (총 10 중에서)
-
글쓴이글
-
2024년 2월 23일 11:27 #114146
황승현참가자개인 프로젝트 만들고 있습니다. redux에서 2차원 array state변경함수를 쓰려는데 배열에서 몇번째를 수정하고 싶은지 계속 바뀌는 상황이라 변경함수에 몇번째를 지정하는 파라미터를 추가하고 싶은데 어떻게 코드를 짜야 하나요?
2024년 2월 23일 14:38 #114173
황승현참가자redux 변수 저장해놓은 store.js에 있는 2차원 배열입니다. 여기서 dispatch를 어떻게 사용해야 하는지 모르겠습니다. let 바둑판 = createSlice({ name: "바둑판", initialState: [ [[0], [0], [0], [0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0], [0], [0], [0]], [[0], [0], [0], [0], ["black-border"], [0], [0], [0]], [[0], [0], [0], ["black"], ["white"], ["black-border"], [0], [0]], [[0], [0], ["black-border"], ["white"], ["black"], [0], [0], [0]], [[0], [0], [0], ["black-border"], [0], [0], [0], [0]], [[0], [0], [0], [0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0], [0], [0], [0]], ], reducers: { 바둑판변경(state, action) {/*바둑판[i][j]의 자료를 파라미터를 받아서 변경하고 싶음*/}, }, });
2024년 2월 23일 20:10 #114204
codingapple키 마스터행과 열 2개 정보 전달하면 될거같은데 그걸 array같은데 담아서 dispatch(변경함수(array)) 합시다
2024년 2월 23일 22:27 #114217
황승현참가자let 바둑판 = createSlice({ name: "바둑판", initialState: [ [[0], [0], [0], [0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0], [0], [0], [0]], [[0], [0], [0], [0], ["black-border"], [0], [0], [0]], [[0], [0], [0], ["black"], ["white"], ["black-border"], [0], [0]], [[0], [0], ["black-border"], ["white"], ["black"], [0], [0], [0]], [[0], [0], [0], ["black-border"], [0], [0], [0], [0]], [[0], [0], [0], [0], [0], [0], [0], [0]], [[0], [0], [0], [0], [0], [0], [0], [0]], ], reducers: { 바둑판변경(state, action) { state[action[0]][action[1]] = action[2]; }, }, }); function Stone(props) { let dispatch = useDispatch(); return ( <div className="background" onClick={() => { dispatch(바둑판변경([props.i, props.j, "black"])); }} > <div className={`circle ${props.바둑판}`}></div> </div> ); } stone은 하위 컴포넌트이고 i, j를 props로 전송했습니다. Cannot set properties of undefined (setting 'undefined')라는 에러가 dispatch(바둑판변경([props.i, props.j, "black"]));에서 나오는데 어떤게 문제인지 모르겠습니다.
2024년 2월 23일 22:36 #114219
황승현참가자state[action.payload[0]][action.payload[1]] = action.payload[2]; 로 바꾸니까 해결됬네요. array로 담아서 전송하는게 핵심이였네요. 감사합니다.
2024년 2월 24일 00:50 #114223
황승현참가자보드게임에서 번갈아가며 차례를 정하는 변수를 만들었는데요, 1과 2가 번갈아가며 나오게 했는데 왜인지 안되네요 let 누구차례냐 = createSlice({ name: "누구차례냐", initialState: 1, reducers: { 차례변경(state) { if (state == 1) { return 2; } else if (state == 2) { return 1; } }, }, }); 요게 store.js에 있는 코드고, return ( <div className="background" onClick={() => { if (누구차례냐 == 1) { dispatch(바둑판변경([props.i, props.j, "black"])); 차례변경(); console.log(누구차례냐); } else if(누구차례냐 == 2){ dispatch(바둑판변경([props.i, props.j, "white"])); 차례변경(); } }} > <div className={`circle ${바둑판[props.i][props.j]}`}></div> </div> ); 요게 컴포넌트입니다. console.log로 클릭할때마다 출력해봤는데 1만 나와요. 제가 어떤걸 잘못한걸까요?
-
글쓴이글
10 글 보임 - 1 에서 10 까지 (총 10 중에서)
- 답변은 로그인 후 가능합니다.