我正在使用 react 和 typescript 制作一個應用程式,在這里我需要記住一個函式。
const formatData = (
data: number[],
gradientFill?: CanvasGradient
): Chart.ChartData => ({
labels: ["a", "b", "c"],
datasets: [
{
data
}
]
});
我試圖記住上述功能,例如,
const formatData = useMemo((
data: number[],
gradientFill?: CanvasGradient
): Chart.ChartData => ({
labels: ["a", "b", "c"],
datasets: [
{
data
}
]
}),[]);
這會導致以下錯誤。
“(data: number[], gradientFill?: CanvasGradient | undefined) => Chart.ChartData”型別的引數不可分配給“() => ChartData”型別的引數。
您能否幫助正確實作useMemo上述功能?提前致謝。
作業示例:(App.tsx 檔案第 10 行)
uj5u.com熱心網友回復:
useMemo的回呼不應接受引數。引數應該存在于從- 結果函式回傳的值中。useMemoformatData
const formatData = useMemo(() => (
data: number[],
gradientFill?: CanvasGradient
): Chart.ChartData => ({
labels: ["a", "b", "c"],
datasets: [
{
data
}
]
}), []);
但useCallback在這里更合適。
const formatData = useCallback((
data: number[],
gradientFill?: CanvasGradient
): Chart.ChartData => ({
labels: ["a", "b", "c"],
datasets: [
{
data
}
]
}), []);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/397933.html
