[英]Nested arrow function typescript syntax
export const asyncAction = (data: {
param: string
}): AppThunk => async (dispatch) => {
try {
const apidata = await api({ param });
} catch (err) {
console.log(err);
}
};
我收到此錯誤“在速記屬性 'param' 的范圍內不存在任何值。聲明一個或提供一個初始值設定項。”
如果要解構param
屬性,則必須將解構的對象語法放在參數類型定義的左側,如下所示:
export const asyncAction = ({
param,
}: {
param: string;
}): AppThunk => async (dispatch) => {
// ...
但在這種情況下,如果 one 參數確實是一個只有一個param
屬性的對象,解構沒有幫助,因為您稍后將創建一個帶有param
屬性的對象以傳遞給api
:
export const asyncAction = (data: { param: string; }): AppThunk => async (dispatch) => {
try {
const apidata = await api(data);
} catch (err) {
console.log(err);
}
// ...
};
您的外部作用域方法有一個名為 data 且具有 param 屬性的參數。 在您的內部作用域方法中,您試圖在沒有 data.param 的情況下訪問 param
如果應該是:
export const asyncAction = (data: {
param: string
}): AppThunk => async (dispatch) => {
try {
const apidata = await api({ param: data.param });
} catch (err) {
console.log(err);
}
};
在api({ param });
您嘗試訪問param
中所儲存data
。 你需要先從data
“解壓”它,像這樣: const param = data.param;
,只有這樣你才能使用它。
export const asyncAction = (data: {
param: string
}): AppThunk => async (dispatch) => {
const param = data.param;
try {
const apidata = await api({ param });
} catch (err) {
console.log(err);
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.