Javascrip default parameter ReferenceError: param is not defined

Javascrip default parameter ReferenceError: param is not defined

我定义了一个函数来获取一些数据。我这样设置默认参数:

export async function fetchSomeData(limit=10, offset=0) {
    // fetch something
}

我在我的组件中导入这个函数并像这样使用它:

async componentDidMount() {
    ...
    let someData = await fetchSomeData() <- This works
    let someData = await fetchSomeData(limit=20, offset=10) <- This doesn't work
    ...
}

它在不设置 limitoffset 的情况下工作,但是当我尝试为 offsetlimit 传递新值时,我得到一个 Unhandled Runtime Error ReferenceError: limit/offset is not defined .我错过了什么吗?

如果调用函数,则不会“设置”“参数名称”。
您只需简单地解析要在函数中使用的 Numbers/Data。

因此您的函数调用应如下所示:

let someData = await fetchSomeData(20, 10) <- This should work

--

如果您想再次使用相同的参数(在您的情况下 someData),您不需要“重新设置”变量类型。您只需覆盖现有数据即可。

因此在您的情况下,您的 componentDidMount 将如下所示:

async componentDidMount() {
    ...
    let someData = await fetchSomeData() <- This works
    someData = await fetchSomeData(20, 10) <- This should work
    ...
}

与 pyhton 不同,您不需要在函数中指定参数名称。

以下作品在 python、

fetchSomeData(limit=20, offset=10) 
fetchSomeData(offset=10) 

以下是在 JS 中做同样事情的方法,

fetchSomeData(20, 10) 
fetchSomeData(undefined, 10) 

如果您想为参数使用默认值,请传递 undefined

More Details are here