Реагируйте, как добавить счетчик в useCallback

#reactjs

Вопрос:

Я хочу сгенерировать следующие числа 1,2,3,4 в своем обратном вызове для отображения строк с порядковыми номерами столбцов. Как это сделать? Я понятия не имею…

  const [lastNumber, setLastNumber] = useState(1);
    const getNumber = () => {
        console.log(lastNumber);
        setLastNumber(lastNumber  1);
        console.log(lastNumber);
        return lastNumber;
    };


 const getItems = useCallback(() => Service.getwarehouseList(id)
        .then((res) => ({
            items: res.map((warehouse) => ({
                id: warehouse.id,
                warehouseNumber: getNumber(),//how to increase number every time by one?
                name: warehouse,
                warehouseType: warehouse.ramp_type,
                operationType: warehouse.operation_type,
                editWarehouse: warehouse,
            })),
            done: true,
        })), [warehouseId, Service]);
 

Комментарии:

1. который useEffect ? пожалуйста, покажите полный пример…

2. @thedude извините, я имею в виду обратный вызов

Ответ №1:

Обратный вызов функции map получает индекс цикла в качестве второго параметра.
Вы можете использовать это index для подсчета предметов:

         items: res.map((warehouse, index) => ({
            id: warehouse.id,
            warehouseNumber: index   1, // index starts at 0, so add one to start counting at 1.
            name: warehouse,
            warehouseType: warehouse.ramp_type,
            operationType: warehouse.operation_type,
            editWarehouse: warehouse,
        })),
 

Комментарии:

1. да! Я забыл об индексе в .map СПАСИБО