Полный пример на этой странице:
const multiplier = 2;
// inferred as (value: number) => number
const multiply = useCallback((value: number) => value * multiplier, [multiplier]);
Что отлично компилируется.
multiplier
здесь просто переменная, которая где-то определена . Это может быть константа, такая как приведенный выше код, или что-то, извлеченное из состояния компонента, или полученное в результате вызова API. В этом нет ничего особенного, это просто локальная переменная, которую необходимо определить перед ее использованием.
А [multiplier]
просто означает, что multiplier
- единственное значение в массиве. В этом случае значение [2]
. Он представляет зависимости обратного вызова. Если какие-либо зависимости изменятся, обратный вызов будет воссоздан. Таким образом, должен быть способ передать несколько зависимостей. В данном случае только один: multiplier
. Таким образом, вы передаете массив с одним элементом как [multiplier]
.