【问题标题】:React FC - Is declaring props as optional with an undefined default/fallback value considered superfluous?React FC - 使用未定义的默认/后备值将道具声明为可选是多余的吗?
【发布时间】:2026-01-09 03:15:01
【问题描述】:

想象一下这个组件

function AudioPlayer({
   uri,
   volume = 1.0,
   onPlay = undefined <--- superfluous?
}) {

}

AudioPlayer.propTypes = {
   uri: PropTypes.string.isRequired,
   volume: PropTypes.number,
   onPlay: PropTypes.func,
}

如您所见,onPlay 是可选的(如 prop-types 中所声明的),但是...将其设置为 onPlay = undefined 是否正确(我的意思是,不是多余的)?

或者我应该这样做:

function AudioPlayer({
   uri,
   volume = 1.0,
   onPlay,
}) {

}

【问题讨论】:

  • 是的,它是正确的,您不会收到警告或错误。但是没有必要将可选道具的默认值设置为未定义,因为它已经是未定义的。您只是将 undefined 设置为 undefined。

标签: javascript reactjs react-native


【解决方案1】:

在这种情况下,我根本不声明。如果我想声明它只是为了表明它将来会存在,我会为其指定一个默认值类型。像0 表示数字,或空字符串表示字符串类型等。

【讨论】: