question for update redux by dispatch for Set (set.delete)

Viewed 29

I am trying to update Redux Set.

target is selectedRows

const initialState = {
  columns: [{ key: "hi", name: "hyun" }],
  basicRows: [{
    
  }],
  pageInfo: {
    page: 1,
    total: 1
  },
  selectedRows: new Set<any>()

} as TaskBoardState;

I tried the update but error is occured

    const passSelectedDataToPage = () => {
        console.log("등록 버튼 클릭");
        console.log("selectedRows : ", selectedRows);

        // let tmp: Set<any> = selectedRows;
        let tmp: Set<any> = new Set(selectedRows_for_users_table);
        let tmp2: Set<any> = selectedRows;

        const rows_for_register = basicRows.map((row: any) => {
            if (selectedRows.has(row._id) && !selectedRows_for_users_table.has(row._id)) {
                tmp.add(row._id)
                return {
                    ...row,
                    id: row._id,
                    email: user.email,
                    name: user.name,
                    test_complete: "false"
                }
            }
        }).filter((v) => v);
        setSelectedRows(tmp);
        console.log("rows_for_register : ", rows_for_register);

        // 추가로 등록한 경우
        dispatch(
            taskBoardSlice.actions.setSelectedRows(tmp)
        )
        dispatch(
            taskBoardSlice.actions.addMultiRowsForSearchBoardForReadyToRegister(rows_for_register)
        )

        // 취소한 경우 기존거에서 취소한걸 빼야 된다
        // 리덕스 선언:   selectedRows: new Set<any>()
        // 컴퍼넌트에서 가져오기:
        // let selectedRows_for_users_table = useSelector((state: RootState) => state.task_board.selectedRows);
        const before_selecetd_rows = selectedRows_for_users_table;
        const new_selected_rows = selectedRows;
        console.log("before_selecetd_rows : ", before_selecetd_rows);
        console.log("new_selected_row : ", new_selected_rows);
        selectedRows_for_users_table.delete(new_selected_rows); 

        setIsOpen(false);
    }

error messae: error message: Error: [Immer] This object has been frozen and should not be mutated

my question is this: why this error is occuered? and how to fix error?

thanks

0 Answers
Related