как заполнить двумерный массив редекс - PullRequest
0 голосов
/ 09 апреля 2020

Новый для JS и Redux. Я пытаюсь сделать 2D-массив, который соответствует моему построению данных каналов, в котором есть видео, поэтому в основном мне нужен массив массивов данных видео (информация о видео, а не само видео).

videos - это двумерный массив, пустой; я должен инициализировать 2d массив с правильным количеством пустых массивов? как это сделать правильно?

как выглядит мое видео Редуктор:


const initialState: VideosState = {
    videos: [] // 2d array Videos[][];
}

const newsReducer = (
    state = initialState,
    action: VideosActionTypes
): VideosState => {
    switch (action.type) {
        case FETCH_VIDEOS.SUCCESS:
            const index = action.videos[1];
            return { videos: [...state.videos[index], action.videos[0]] };// error : Type '(Video | Video[])[]' is not assignable to type 'Video[][]'. Type 'Video | Video[]' is not assignable to type 'Video[]'.
        case FETCH_VIDEOS.REFRESH_SUCCESS:
            //return { videos: [...state.videos[action.videos[1]]] = action.videos[0] }; i dont know how to replace old array in 2d array with new one ;
        default:
            return state;
    }
}

export default newsReducer;

action.videos - это кортеж [Video[], number, string]: [массив видео, которые я получаю из API, число и индекс, необходимый для правого массива в массиве 2d, строка - это маркер страницы, необходимый для API для разбивки на страницы];

В case FETCH_VIDEOS.SUCCESS: я хочу добавить все видео из action.videos[0] в массив из 2d. массив индексов action.videos[1]; и каждый FETCH_VIDEOS.SUCCESS я хочу добавить больше данных из action.videos[0] в правильный массив в 2d массиве; И я хочу заменить массив внутри 2d массива action.videos[0 массив в case FETCH_VIDEOS.REFRESH_SUCCESS:.

...