gpt4 book ai didi

javascript - React 组件状态的默认函数参数值

转载 作者:行者123 更新时间:2023-12-03 13:52:59 25 4
gpt4 key购买 nike

今天我为同事进行了审查,发现了一个令我感兴趣的函数定义。如果函数调用没有提供参数,他会在 React 组件中实现一个带有默认参数值的函数。他使用state值作为默认参数。

看起来像这个例子:

class CustomComponent extends React.Component {
constructor(props) {
this.state = {
loadedData = [], // array of objects
};

this.filterDates = (fromUtc, toUtc, loadedData = this.state.loadedData) {
// do something with 'loadedData' based on time range 'fromUtc' and 'toUtc'
}
}
}

他无法给我一个很好的解释。只是它在他的实现中有效。

我一直使用“静态”默认参数值(例如 []、数字等)我很好奇是否可以使用某种“动态”默认参数,该参数会在 state 更改时发生变化。

这样写可以吗?会不会有问题?

最佳答案

根据Airbnb Javascript Style Guide -es6 default parameters这个办法很好。但是,我质疑将默认值分配给根据定义是可变的状态,除非它是所需的效果。默认参数不应该是可变的。就我个人而言,我是第一次看到这种方法,我认为这并不直观,但也许这只是我的经验。

在我看来,下面的代码更清晰、更容易理解并且错误更少:

class CustomComponent extends React.Component {
constructor(props) {
this.state = {
loadedData = [], // array of objects
};

this.filterDates = (fromUtc, toUtc, loadedData = []) => {
// do something with 'loadedData' based on time range 'fromUtc' and 'toUtc'
}
}
}

关于javascript - React 组件状态的默认函数参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58972993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com