когда пользователь изменяет данные, mutate вызывает ошибку таблицы реакции: не является функцией

Я программирую приложение next.js, используя таблицу реакций и используюSWR для извлечения данных из маршрута api / clients.

          const fetchData = (args) => fetch(args).then((res) => res.json())
      const { data, fetchError, mutate } = useSWR(session ? ['/api/clients/', session] : null, fetchData)

После успешного создания таблицы пользователь может нажать кнопку «активный / неактивный», чтобы обновить базу данных маршрутом api / active. Прямо сейчас все работает нормально, пока здесь.

          const changeActive = (props, isVisible) => async (event) => {
        try {
          const urlparam = props
          const response = fetch(`/api/active/${urlparam}`)
          
          mutate({ ...data, active: isVisible })

        } catch(err) {
            // something
        } 
      }; 

Проблема в том, что таблица не перерисовывается, поэтому пользователь не может увидеть изменения, если он не изменит вкладку Chrome и не вернется, что заставляет пользователя нажимать кнопку много раз, потому что он думает, что это не работает.

Когда пользователь нажимает кнопку «активный / неактивный» и база данных обновляется, я вызываю useSWR для изменения для API / клиентов, но именно здесь таблица реакции выдает ошибку : TypeError: data.forEach не является функцией

Я получаю данные из родительского компонента и отправляю их дочернему компоненту в качестве параметра. Дочерний компонент - это тот, который создает таблицу реакции.

          <dataTable data={data} mutate={mutate} />;

Это мое объявление таблицы реакций:

          const tableInstance = useTable({ 
            columns, 
            data 
        }, useFilters, useSortBy, usePagination );
        
    const {
            getTableProps,
            getTableBodyProps,
            headerGroups,
            rows,
            prepareRow,
            setFilter,
            pageOptions,
            page,
            state: { pageIndex, pageSize },
            gotoPage,
            previousPage,
            nextPage,
            setPageSize,
            canPreviousPage,
            canNextPage,
        } = tableInstance;

0 ответов

Другие вопросы по тегам